1638 lines
111 KiB
JSON
1638 lines
111 KiB
JSON
{
|
||
"welcome": "Welcome, {user_name}!",
|
||
"channel_subscription_required": "To use the bot, join the channel and tap \"Check subscription\".",
|
||
"channel_subscription_join_button": "Open channel",
|
||
"channel_subscription_verify_button": "Check subscription",
|
||
"channel_subscription_check_failed": "Couldn't verify the subscription. Please try again later or contact support.",
|
||
"channel_subscription_verified_success": "✅ Subscription confirmed! You're good to go.",
|
||
"webapp_auth_success": "✅ Login confirmed. Return to the Web App.",
|
||
"webapp_auth_expired": "The login link has expired. Return to the Web App and try again.",
|
||
"main_menu_greeting": "Hi, {user_name}! 👋\nOpen \"Personal Account\" to set up the connection, view your subscription, or renew access.",
|
||
"menu_activate_trial_button": "🆓 Free Trial",
|
||
"menu_subscribe_inline": "🚀 Purchase",
|
||
"menu_personal_account_button": "🔑 Personal Account",
|
||
"menu_bot_interface_button": "🤖 Bot menu",
|
||
"menu_my_subscription_inline": "🔐 My Subscription",
|
||
"no_subscription_options_available": "Subscription issuance is not configured by the bot administrator",
|
||
"menu_referral_inline": "🎁 Invite friend",
|
||
"referral_no_bonuses_configured": "Sorry, the referral program is currently disabled",
|
||
"menu_apply_promo_button": "🎟 Promo Code",
|
||
"menu_language_settings_inline": "🌐 Language",
|
||
"menu_server_status_button": "📊 Status",
|
||
"menu_support_button": "💬 Admin contact",
|
||
"menu_terms_button": "📄 Terms of Service",
|
||
"menu_info_button": "ℹ️ Information",
|
||
"bot_interface_menu_title": "Bot interface",
|
||
"bot_interface_menu_webapp_hint": "The Personal Account is the easier place to manage the service.",
|
||
"info_links_message": "Choose a document:",
|
||
"privacy_policy_button": "🔒 Privacy Policy",
|
||
"user_agreement_button": "📄 User Agreement",
|
||
"back_to_main_menu_button": "⬅️ Back",
|
||
"choose_language": "Choose language:",
|
||
"language_set_alert": "Language changed!",
|
||
"error_occurred_try_again": "An error occurred, please try again.",
|
||
"error_try_again": "Please try again.",
|
||
"error_displaying_menu": "Error displaying menu.",
|
||
"main_menu_unknown_action": "Unknown action.",
|
||
"select_subscription_period": "Select subscription period:",
|
||
"select_traffic_package": "Select a traffic package:",
|
||
"subscribe_for_months_button": "{months} mo. - {price} {currency_symbol}",
|
||
"buy_traffic_package_button": "{traffic_gb} GB - {price} {currency_symbol}",
|
||
"choose_payment_method": "Choose payment method:",
|
||
"choose_payment_method_traffic": "Choose how to pay for the traffic package:",
|
||
"pay_button": "💳 Pay",
|
||
"yookassa_autopay_flow_prompt": "Auto-renew is enabled. Choose how you'd like to pay:",
|
||
"yookassa_autopay_pay_saved_card_button": "💳 Pay with saved card",
|
||
"yookassa_autopay_pay_new_card_button": "➕ Pay with new card",
|
||
"yookassa_autopay_choose_saved_card": "Choose a saved card to charge:",
|
||
"yookassa_autopay_no_saved_cards": "No saved cards found. Pay with a new card or link one in Payment Methods.",
|
||
"back_to_autopay_method_choice_button": "⬅️ Back",
|
||
"yookassa_autopay_charge_initiated": "Charge request sent to the selected card. We'll notify you once the payment completes.",
|
||
"back_to_payment_methods_button": "⬅️ Back",
|
||
"connect_button": "🔗 Connect",
|
||
"install_guide_share_button": "🔗 Share install guide",
|
||
"install_guide_share_link_line": "\n\nInstall guide for sharing:\n<code>{install_share_link}</code>",
|
||
"cancel_button": "❌ Cancel",
|
||
"devices_button": "📱 My Devices ({current_devices}/{max_devices})",
|
||
"my_devices_details": "📱 <b>My Devices ({current_devices}/{max_devices})</b>\n\n{devices}\n\nYou can disconnect a device by selecting it from the list below.\n<blockquote><i>Note: If you disconnect a device, it will be automatically connected again when you use it next. Before deleting, make sure you have deleted the subscription from the application.</i></blockquote>",
|
||
"no_devices_details_found_message": "📱 <b>My Devices</b>\n\nYou don't have any devices yet.\nYou have {max_devices} devices available. You can connect them by clicking the \"🔗 Connect\" button in the subscription menu.",
|
||
"device_details": "{index}) <b>{device_model} ({platform} {os_version})</b>\nDate connected: <b>{created_at_str}</b>\nUser Agent: <b>{user_agent}</b>\nHWID: <code>{hwid}</code>",
|
||
"disconnect_device_button": "🚫 Disconnect {hwid} ({index})",
|
||
"device_disconnected": "Device disconnected successfully.",
|
||
"no_devices_found": "Error loading device list.",
|
||
"devices_unlimited_label": "Unlimited",
|
||
"my_devices_feature_disabled": "The My Devices section is currently unavailable.",
|
||
"payment_description_subscription": "Subscription payment for {months} mo.",
|
||
"payment_description_traffic": "Traffic package {traffic_gb} GB",
|
||
"payment_link_message": "To pay for {months} mo. subscription, click the button below:",
|
||
"payment_link_message_traffic": "To pay for a {traffic_gb} GB package, tap the button below:",
|
||
"free_kassa_order_info": "Order #{order_id} from {date}",
|
||
"payment_invoice_sent_message": "Telegram has sent the invoice above. Complete the payment or pick another method below.",
|
||
"payment_invoice_sent_message_traffic": "Invoice for {traffic_gb} GB sent above. Complete the payment or pick another method below.",
|
||
"payment_successful_error_details": "✅ Payment succeeded, but an error occurred displaying details. Your subscription is active. Contact support if anything is wrong.",
|
||
"payment_successful_full": "✅ Payment successful!\nYour {months}-month subscription is active until {end_date}.\n\nConnection key:\n<code>{config_link}</code>\n\nTo connect, open the link and follow the instructions 👇",
|
||
"payment_successful_traffic_full": "✅ Payment successful!\nYour {traffic_gb} GB package is active.\nValidity: {end_date}\n\nConnection key:\n<code>{config_link}</code>\n\nTo connect, open the link and follow the instructions 👇",
|
||
"payment_successful_hwid_devices_full": "✅ Payment successful!\nExtra HWID devices added: +{count}.\n\nConnection key:\n<code>{config_link}</code>\n\nTo connect, open the link and follow the instructions 👇",
|
||
"payment_successful_with_referral_bonus_full": "✅ Payment successful!\nYour {months}-month subscription (base end date: {base_end_date}) has been extended by {bonus_days} bonus days for referral from {inviter_name} and is now active until {final_end_date}.\n\nConnection key:\n<code>{config_link}</code>\n\nTo connect, open the link and follow the instructions 👇",
|
||
"payment_failed": "❌ Payment failed or was cancelled. Please try again or contact support.",
|
||
"config_link_not_available": "not available, contact support",
|
||
"traffic_unlimited": "Unlimited",
|
||
"traffic_period_day": "per day",
|
||
"traffic_period_week": "per week",
|
||
"traffic_period_month": "per month",
|
||
"traffic_period_no_reset": "no reset",
|
||
"traffic_used_with_period": "{traffic_used} ({traffic_period})",
|
||
"promo_code_prompt": "Please enter your promo code:",
|
||
"promo_code_not_found": "Promo code <code>{code}</code> not found, expired, or already used the maximum number of times.",
|
||
"promo_code_too_many_attempts": "Too many failed promo code attempts. Please try again in {seconds} sec.",
|
||
"promo_code_already_used_by_user": "You have already used promo code <code>{code}</code>.",
|
||
"promo_code_applied_success_full": "✅ Promo code applied successfully!\nSubscription active until {end_date}.\n\nConnection key:\n<code>{config_link}</code>\n\nTo connect, open the link and follow the instructions 👇",
|
||
"error_applying_promo_bonus": "Failed to apply promo bonus. Please try again later or contact support.",
|
||
"promo_input_cancelled_short": "Promo code entry cancelled.",
|
||
"trial_feature_disabled": "Free trial is currently unavailable.",
|
||
"trial_already_had_subscription_or_trial": "You have already used a free trial or had a paid subscription. Free trial is available only once for new users.",
|
||
"trial_confirm_activate_button": "✅ Activate!",
|
||
"trial_activated_alert": "Trial activated!",
|
||
"trial_activated_details_message": "✅ Trial activated!\nYour {days}-day trial is active until {end_date}.\n\nConnection key:\n<code>{config_link}</code>\n\nTo connect, open the link and follow the instructions 👇",
|
||
"referral_welcome_bonus_applied": "🎁 You have received {days} bonus day(s) for registering via a referral link!\nYour subscription is active until {end_date}.",
|
||
"yes_button": "Yes",
|
||
"no_button": "No",
|
||
"referral_program_info_new": "🎁 <b>Referral Program</b>\n\n📊 <b>Your stats:</b>\n👥 Friends invited: <b>{invited_count}</b>\n💳 Purchased subscription: <b>{purchased_count}</b>\n\n🔗 Telegram link:\n<code>{referral_link}</code>{webapp_link_section}\n\n💰 <b>Invitation bonuses:</b>\n{bonus_details}\n\n📢 Share the link with friends and get bonuses!",
|
||
"referral_bonus_per_period": "\n\n🎁 For a friend's {months}-month subscription:\n ➢ You: <b>{inviter_bonus_days} days</b>\n ➢ Friend: <b>{referee_bonus_days} days</b>",
|
||
"referral_not_available_for_traffic": "Referral bonuses are not available for traffic packages.",
|
||
"referral_share_message_button": "📩 Message for friend",
|
||
"referral_friend_message": "🚀 Hey! Try this service - it's fast, reliable and affordable!\n\n🎁 Use my link to get bonus days with your subscription!\n\n{referral_link}",
|
||
"referral_friend_message_with_webapp": "🚀 Hey! Try this service - it's fast, reliable and affordable!\n\n🎁 Use my link to get bonus days with your subscription!\n\nTelegram: {referral_link}\nWeb: {webapp_referral_link}",
|
||
"referral_webapp_link_line": "\n🌐 Web link:\n<code>{webapp_referral_link}</code>",
|
||
"friend_placeholder": "friend",
|
||
"referral_bonus_inviter_notification_extended": "🎉 Congrats! Your friend {referee_name} paid for a subscription. You received {days} bonus days! Your subscription is now active until {new_end_date}.",
|
||
"referral_bonus_inviter_notification_new_sub": "🎉 Congrats! Your friend {referee_name} paid for a subscription. You received a {days}-day bonus subscription! It is active until {new_end_date}.",
|
||
"user_is_banned": "🚫 Your account is banned. Please contact support.",
|
||
"admin_panel_title": "Admin Panel",
|
||
"admin_stats_button": "📊 Statistics",
|
||
"admin_broadcast_button": "📢 Broadcast",
|
||
"admin_create_promo_button": "🎁 Create Promo",
|
||
"admin_create_bulk_promo_button": "📦 Bulk Create",
|
||
"admin_ban_user_button": "🚫 Ban",
|
||
"admin_unban_user_button": "✅ Unban",
|
||
"admin_view_banned_users_button": "📜 Ban List",
|
||
"admin_view_logs_menu_button": "📄 Logs",
|
||
"admin_sync_panel_button": "🔄 Sync",
|
||
"admin_unknown_action": "Unknown admin action.",
|
||
"admin_stats_and_monitoring_section": "📊 Statistics",
|
||
"admin_user_management_section": "👥 Users",
|
||
"admin_promo_marketing_section": "🎁 Promos",
|
||
"admin_system_functions_section": "⚙️ System",
|
||
"admin_ban_management_section": "🚫 Bans",
|
||
"admin_users_search_button": "🔍 Search",
|
||
"admin_users_management_button": "👥 User List",
|
||
"admin_users_list_header": "👥 <b>User List</b>\n\nPage {current}/{total} ({total_users} users)",
|
||
"admin_user_back_to_list_button": "⬅️ Back to List",
|
||
"back_to_user_management_button": "⬅️ To Users",
|
||
"back_to_admin_panel_button": "⬅️ To Admin",
|
||
"admin_stats_header": "📊 Bot Statistics",
|
||
"admin_enhanced_users_stats_header": "Users",
|
||
"admin_financial_stats_header": "Financial Statistics",
|
||
"admin_stats_recent_payments_header": "Recent Payments:",
|
||
"admin_stats_payment_item": "{status_emoji} {amount} {currency} from {user_info} ({p_status}) [{p_date}]",
|
||
"admin_stats_no_payments_found": "No payments found yet.",
|
||
"admin_view_payments_button": "💰 Payments",
|
||
"admin_user_ratings_button": "🏆 User Ratings",
|
||
"back_to_stats_monitoring_button": "⬅️ To Statistics",
|
||
"admin_user_ratings_header": "🏆 <b>User Ratings (TOP {top_limit})</b>",
|
||
"admin_user_ratings_traffic_title": "📊 By used traffic",
|
||
"admin_user_ratings_traffic_month_title": "📊 By used traffic (month)",
|
||
"admin_user_ratings_traffic_lifetime_title": "📊 By used traffic (lifetime)",
|
||
"admin_user_ratings_invited_title": "👥 By invited users",
|
||
"admin_user_ratings_revenue_title": "💸 By referral revenue",
|
||
"admin_user_ratings_traffic_item": "{rank}. {user} — <b>{traffic_gb} GB</b>",
|
||
"admin_user_ratings_invited_item": "{rank}. {user} — <b>{invited_count}</b>",
|
||
"admin_user_ratings_revenue_item": "{rank}. {user} — <b>{revenue} RUB</b>",
|
||
"admin_user_ratings_empty": "No data yet.",
|
||
"admin_payments_header": "💰 <b>All Payments</b>",
|
||
"admin_no_payments_found": "No payments found.",
|
||
"admin_export_payments_csv": "📊 Export CSV",
|
||
"admin_refresh_payments": "🔄 Refresh",
|
||
"admin_no_payments_to_export": "No payments to export.",
|
||
"admin_payments_export_success": "📊 Payments export completed!\nTotal records: {count}",
|
||
"admin_export_sent": "File sent!",
|
||
"admin_csv_payment_id": "ID",
|
||
"admin_csv_user_id": "User ID",
|
||
"admin_csv_username": "Username",
|
||
"admin_csv_first_name": "First Name",
|
||
"admin_csv_amount": "Amount",
|
||
"admin_csv_currency": "Currency",
|
||
"admin_csv_provider": "Provider",
|
||
"admin_csv_status": "Status",
|
||
"admin_csv_description": "Description",
|
||
"admin_csv_units": "Months/GB",
|
||
"admin_csv_months": "Months",
|
||
"admin_csv_created_at": "Created At",
|
||
"admin_csv_provider_payment_id": "Provider Payment ID",
|
||
"admin_stats_last_sync_header": "Last Panel Sync:",
|
||
"admin_stats_sync_time": "Time",
|
||
"admin_stats_sync_status": "Status",
|
||
"admin_stats_sync_users_processed": "Users Processed",
|
||
"admin_stats_sync_subs_synced": "Subscriptions Synced",
|
||
"admin_stats_sync_details_label": "Details",
|
||
"admin_sync_status_never_run": "Panel sync never run.",
|
||
"admin_broadcast_enter_message": "Enter the broadcast message (HTML supported):",
|
||
"admin_broadcast_confirm_prompt_short": "The message above will be sent. Confirm?",
|
||
"broadcast_target_all_button": "👥 All",
|
||
"broadcast_target_active_button": "✅ Active",
|
||
"broadcast_target_inactive_button": "⌛ Inactive",
|
||
"confirm_broadcast_send_button": "✅ Send",
|
||
"cancel_broadcast_button": "❌ Cancel",
|
||
"admin_broadcast_sending_started": "Starting broadcast...",
|
||
"admin_broadcast_error_no_message": "Error: no message to broadcast.",
|
||
"admin_broadcast_error_no_message_alert": "Broadcast message is empty!",
|
||
"admin_broadcast_cancelled": "Broadcast cancelled.",
|
||
"admin_broadcast_cancelled_alert": "Broadcast cancelled!",
|
||
"admin_broadcast_cancelled_nav_back": "Broadcast cancelled. You are returned to the admin panel.",
|
||
"broadcast_queue_result": "🚀 Broadcast queued!\n📤 Enqueued: {sent_count}\n❌ Errors: {failed_count}\n\n📊 Queue Status:\n👥 User queue: {user_queue_size} messages\n📢 Group queue: {group_queue_size} messages\n\nℹ️ Messages will be sent automatically within Telegram limits.",
|
||
"admin_promo_invalid_code_format": "Code must be 3–30 alphanumeric characters.",
|
||
"admin_promo_invalid_bonus_days": "Bonus days must be a positive number.",
|
||
"admin_promo_invalid_max_activations": "Max activations must be a positive number.",
|
||
"admin_promo_invalid_validity_days": "Validity period (in days) must be a positive number.",
|
||
"admin_promo_created_success": "✅ Promo code <code>{code}</code> created successfully!\nBonus: {bonus_days} days\nMax uses: {max_activations}\nValid until: {valid_until_str}.",
|
||
"admin_promo_set_validity_days": "⏰ Set validity (days)",
|
||
"admin_back_to_panel": "⬅️ Back to panel",
|
||
"admin_promo_unlimited": "♾️ Unlimited",
|
||
"admin_bulk_promo_created_title": "📦 Bulk creation completed",
|
||
"admin_bulk_promo_created_stats": "📊 Created: <b>{created}</b> of <b>{total}</b>",
|
||
"admin_bulk_promo_settings": "🎁 Bonus days: <b>{bonus_days}</b>\n📊 Max activations: <b>{max_activations}</b>\n⏰ Validity: <b>{validity}</b>",
|
||
"admin_promo_list_page_info": "Page {current}/{total} ({count} promo codes)",
|
||
"admin_queue_status_button": "📊 Queue Status",
|
||
"admin_queue_status_title": "📊 Message Queue Status",
|
||
"admin_queue_status_info": "📤 <b>Message Queues:</b>\n\n👥 <b>Users (25 msg/sec):</b>\n 📋 In queue: {user_queue_size}\n 🔄 Processing: {user_processing}\n 📈 Sent per minute: {user_recent}\n\n📢 <b>Groups/channels (15 msg/min):</b>\n 📋 In queue: {group_queue_size}\n 🔄 Processing: {group_processing}\n 📈 Sent per minute: {group_recent}",
|
||
"admin_active_promos_list_header": "Active Promo Codes:",
|
||
"admin_no_active_promos": "No active promo codes.",
|
||
"admin_promo_valid_indefinitely": "indefinite",
|
||
"admin_promo_edit_button": "✏️ Edit",
|
||
"admin_promo_delete_button": "🗑 Delete",
|
||
"admin_promo_deleted_success": "Promo {code} deleted.",
|
||
"admin_promo_not_found": "Promo not found.",
|
||
"admin_promo_export_csv_button": "📄 Export to CSV",
|
||
"admin_promo_export_caption": "📄 Activations for promo code {code}",
|
||
"admin_promo_export_all_generating": "📄 Generating CSV...",
|
||
"admin_promo_export_all_caption": "📄 Export of all promo codes\n📊 Total: {count} promo codes",
|
||
"admin_promo_csv_code": "Code",
|
||
"admin_promo_csv_bonus_days": "Bonus Days",
|
||
"admin_promo_csv_max_activations": "Max Activations",
|
||
"admin_promo_csv_current_activations": "Current Activations",
|
||
"admin_promo_csv_status": "Status",
|
||
"admin_promo_csv_is_active": "Active",
|
||
"admin_promo_csv_valid_until": "Valid Until",
|
||
"admin_promo_csv_created_at": "Created",
|
||
"admin_promo_csv_created_by_admin_id": "Created By (Admin ID)",
|
||
"csv_yes": "Yes",
|
||
"csv_no": "No",
|
||
"admin_promo_edit_select_field": "Select a field to edit:",
|
||
"admin_promo_prompt_bonus_days": "Enter the new number of bonus days:",
|
||
"admin_promo_prompt_max_activations": "Enter the new maximum number of activations:",
|
||
"admin_promo_prompt_validity_days": "Enter the new validity period in days (0 for indefinite):",
|
||
"admin_promo_edit_success": "Promo code updated successfully.",
|
||
"admin_promo_invalid_input": "Invalid input, please try again.",
|
||
"admin_promo_edit_bonus_days": "🎁 Bonus Days",
|
||
"admin_promo_edit_max_activations": "🔢 Max Activations",
|
||
"admin_promo_edit_validity": "⏰ Validity",
|
||
"admin_ban_user_prompt": "Enter user ID, @username, or email to ban:",
|
||
"admin_user_already_banned": "User {user_id_or_username} is already banned.",
|
||
"admin_unban_user_prompt": "Enter user ID, @username, or email to unban:",
|
||
"admin_user_not_banned": "⚠️ User is not banned",
|
||
"admin_banned_user_button_text": "{user_display} (ID: {user_id})",
|
||
"prev_page_button": "⬅️ Prev.",
|
||
"next_page_button": "Next ➡️",
|
||
"admin_user_card_title": "User Card",
|
||
"user_card_ban_button": "🚫 Ban",
|
||
"user_card_unban_button": "✅ Unban",
|
||
"user_card_open_profile_button": "👤 Open profile",
|
||
"user_card_open_referrer_profile_button": "👤 Referrer profile",
|
||
"user_card_back_to_banned_list_button": "⬅️ Back to Ban List",
|
||
"admin_logs_menu_title": "Logs Menu:",
|
||
"admin_view_all_logs_button": "📜 All Message Logs",
|
||
"admin_view_user_logs_prompt_button": "👤 User Logs",
|
||
"admin_export_logs_csv_button": "📄 Export to CSV",
|
||
"admin_no_logs_found": "No logs found.",
|
||
"admin_log_entry_format": "<code>{timestamp_str}</code> - <b>{user_display}</b> (ID: {user_id})\n <i>{event_type}</i>: {content_preview}",
|
||
"admin_prompt_for_user_id_or_username_logs": "Enter user ID, @username, or email to view logs:",
|
||
"admin_log_user_not_found": "User \"{input}\" not found in bot database.",
|
||
"sync_started_simple": "🔄 Starting synchronization...",
|
||
"sync_success_simple": "✅ Synchronization completed successfully",
|
||
"sync_failed_simple": "❌ Synchronization failed",
|
||
"sync_errors_simple": "⚠️ Synchronization completed with errors ({errors_count} errors)",
|
||
"sync_critical_error": "❌ Critical synchronization error",
|
||
"admin_sync_initiated_from_panel": "Sync initiated...",
|
||
"admin_broadcast_invalid_html": "❌ Invalid HTML in message. Please send valid HTML (Telegram-supported tags) or remove tags.",
|
||
"error_displaying_logs_too_long": "Error: logs too long to display in one message. Try viewing logs for a specific user.",
|
||
"error_displaying_statistics": "Error displaying statistics.",
|
||
"subscription_72h_notification": "👋 Hi, {user_name}!\n\n⏳ Your service subscription expires in 3 days — {end_date}.\n\nPlease renew it using the button below.",
|
||
"subscription_48h_notification": "👋 Hi, {user_name}!\n\n⏳ Your service subscription expires in 2 days — {end_date}.\n\nPlease renew it using the button below.",
|
||
"subscription_24h_notification": "👋 Hi, {user_name}!\n\n⏳ Your service subscription expires in 1 day — {end_date}.\n\nPlease renew it using the button below.",
|
||
"subscription_expired_notification": "👋 Hi, {user_name}!\n\n⛔ Your service subscription expired on {end_date}.\n\nPlease renew it using the button below.",
|
||
"subscription_expired_yesterday_notification": "👋 Hi, {user_name}!\n\n⏳ Your service subscription expired yesterday ({end_date}).\n\nPlease renew it using the button below.",
|
||
"autorenew_48h_charge_tomorrow_notice": "🔔 Reminder\n\nTomorrow an automatic charge will occur to renew your subscription. If you don't want auto-renew, disable it using the button below.",
|
||
"autorenew_confirm_enable": "🔄 Enable auto-renew? An automatic charge will be attempted before your subscription ends.",
|
||
"autorenew_confirm_disable": "🛑 Disable auto-renew? No further automatic charges will occur.",
|
||
"yookassa_auto_renewal": "🔄 <b>Subscription Auto-Renewed</b>\n\nYour subscription was automatically renewed for {months} month(s).\nNew expiration date: {end_date}",
|
||
"admin_user_management_prompt": "👤 User Management\n\nEnter user ID, @username, or email to search:",
|
||
"admin_user_subscription_info": "Subscription Information:",
|
||
"admin_user_reset_trial_button": "🔄 Reset Trial",
|
||
"admin_user_add_subscription_button": "➕ Add Days",
|
||
"admin_user_toggle_ban_button": "🚫 Block/Unblock",
|
||
"admin_user_send_message_button": "✉️ Send Message",
|
||
"admin_user_view_logs_button": "📜 User Actions",
|
||
"admin_user_refresh_button": "🔄 Refresh",
|
||
"admin_user_delete_button": "❌ Delete User",
|
||
"admin_user_premium_override_button": "⭐ Premium override",
|
||
"admin_user_premium_override_label": "🌟 Premium override:",
|
||
"admin_user_premium_override_unlimited": "Unlimited",
|
||
"admin_user_premium_override_bonus_value": "+{gb} GB",
|
||
"admin_premium_override_title": "🌟 Premium override",
|
||
"admin_premium_override_hint": "Grant free extra premium traffic or unlimited premium access for this user.",
|
||
"admin_premium_override_current": "Current: {current}",
|
||
"admin_premium_override_state_unlimited": "unlimited",
|
||
"admin_premium_override_state_bonus": "+{gb} GB bonus",
|
||
"admin_premium_override_state_none": "not set",
|
||
"admin_premium_override_btn_unlimited": "♾ Make unlimited",
|
||
"admin_premium_override_btn_bonus": "➕ Set bonus GB",
|
||
"admin_premium_override_btn_clear": "🗑 Clear override",
|
||
"admin_premium_override_no_subscription": "User has no active subscription",
|
||
"admin_premium_override_bonus_prompt": "Enter additional premium GB for user {user_id} (number, decimals allowed):",
|
||
"admin_premium_override_invalid_gb": "❌ Invalid value. Enter a non-negative number of GB.",
|
||
"admin_premium_override_state_missing": "⚠️ Target user missing in state. Open the user card again.",
|
||
"admin_premium_override_bonus_set": "✅ Premium override: +{gb} GB for user {user_id}",
|
||
"admin_premium_override_saved": "✅ Premium override saved",
|
||
"admin_premium_override_save_error": "❌ Failed to save premium override",
|
||
"admin_user_traffic_grant_button": "🎁 Grant GB",
|
||
"admin_traffic_grant_title": "🎁 Grant traffic",
|
||
"admin_traffic_grant_hint": "Credit GB to the user's balance — same effect as a top-up purchase, but without payment. The panel limit and squads refresh immediately.",
|
||
"admin_traffic_grant_btn_regular": "🟢 Regular traffic",
|
||
"admin_traffic_grant_btn_premium": "⭐ Premium traffic",
|
||
"admin_traffic_grant_prompt_regular": "Enter the amount of regular traffic in GB for user {user_id} (number, decimals allowed):",
|
||
"admin_traffic_grant_prompt_premium": "Enter the amount of premium traffic in GB for user {user_id} (number, decimals allowed):",
|
||
"admin_traffic_grant_invalid_gb": "❌ Enter a positive number of GB (up to 1,000,000).",
|
||
"admin_traffic_grant_no_user": "⚠️ No target user selected. Open the user card again.",
|
||
"admin_traffic_grant_failed": "❌ Failed to grant traffic. Make sure the user has an active subscription and the tariff supports premium squads.",
|
||
"admin_traffic_grant_regular_done": "✅ +{gb} GB of regular traffic granted to user {user_id}",
|
||
"admin_traffic_grant_premium_done": "✅ +{gb} GB of premium traffic granted to user {user_id}",
|
||
"admin_user_delete_not_allowed": "❌ You are not permitted to delete users.",
|
||
"admin_user_delete_confirmation_prompt": "⚠️ You are about to delete user {user_id} completely.\n\nSend the exact Telegram ID of this user to confirm.\nAny other reply will cancel the operation.",
|
||
"admin_user_delete_state_missing": "⚠️ No active delete operation. Start again.",
|
||
"admin_user_delete_cancelled": "Deletion cancelled.",
|
||
"admin_user_delete_mismatch": "⚠️ ID mismatch. Deletion aborted.",
|
||
"admin_user_delete_already_removed": "ℹ️ The user is already removed.",
|
||
"admin_user_delete_panel_error": "❌ Failed to remove the user from the panel. Operation aborted.",
|
||
"admin_user_delete_success": "✅ User {user_id} was removed from the bot and the panel.",
|
||
"admin_user_delete_error": "❌ Unable to delete the user. Please try again later.",
|
||
"admin_user_search_new_button": "🔍 Find Another",
|
||
"admin_user_view_all_logs_button": "📋 All Actions",
|
||
"admin_user_back_to_card_button": "🔙 Back to Card",
|
||
"admin_user_recent_actions_title": "📜 Recent actions of user {user_id}:",
|
||
"admin_user_not_found": "❌ User not found: {input}",
|
||
"admin_user_not_found_action": "User not found",
|
||
"admin_user_card_error": "❌ Error displaying user card",
|
||
"admin_user_trial_reset_success": "✅ Trial reset! User can activate trial again.",
|
||
"admin_user_trial_reset_error": "❌ Error resetting trial",
|
||
"admin_user_add_subscription_prompt": "➕ Adding subscription days for user {user_id}\n\nEnter number of days to add:",
|
||
"admin_user_invalid_days": "❌ Invalid number of days. Enter number from 1 to 3650.",
|
||
"admin_user_subscription_added_success": "✅ Successfully added {days} days to user {user_id}",
|
||
"admin_user_subscription_added_error": "❌ Error adding subscription days",
|
||
"admin_panel_user_creation_failed": "❌ Failed to create or link panel user for ID {user_id}. Manual intervention required.",
|
||
"admin_user_ban_toggle_success": "✅ User {status}",
|
||
"admin_user_ban_toggle_error": "❌ Error changing ban status",
|
||
"admin_user_ban_success": "✅ User {input} has been banned",
|
||
"admin_user_unban_success": "✅ User {input} has been unbanned",
|
||
"admin_user_ban_error": "❌ Error banning user",
|
||
"admin_user_unban_error": "❌ Error unbanning user",
|
||
"admin_user_send_message_prompt": "✉️ Sending message to user {user_id}\n\nEnter message text:",
|
||
"admin_user_message_too_long": "❌ Message too long (maximum 4000 characters)",
|
||
"admin_user_message_sent_success": "✅ Message sent to user {user_id}",
|
||
"admin_user_message_sent_error": "❌ Error sending message",
|
||
"admin_user_no_logs": "📜 User has no actions",
|
||
"admin_user_logs_error": "❌ Error loading user actions",
|
||
"admin_direct_message_signature": "\n\n---\n💬 Message from administrator",
|
||
"inline_user_stats_message": "👥 <b>User Statistics</b>\n\n📊 Total: <b>{total}</b>\n📈 Active today: <b>{active_today}</b>\n💳 With paid subscription: <b>{paid}</b>\n🆓 On trial period: <b>{trial}</b>\n😴 Inactive: <b>{inactive}</b>\n🚫 Banned: <b>{banned}</b>\n🎁 Via referral program: <b>{referral}</b>",
|
||
"inline_user_stats_description": "Total: {total}, Paid: {active}",
|
||
"inline_admin_user_stats_title": "👥 User Statistics",
|
||
"inline_financial_stats_message": "💰 <b>Financial Statistics</b>\n\n📅 Today: <b>{today:.2f} RUB</b>\n ({today_count} payments)\n📅 Week: <b>{week:.2f} RUB</b>\n📅 Month: <b>{month:.2f} RUB</b>\n🏆 All time: <b>{all_time:.2f} RUB</b>",
|
||
"inline_admin_financial_stats_title": "💰 Financial Statistics",
|
||
"inline_system_stats_message": "🖥 <b>Panel Statistics</b>\n\n🟢 Online: <b>{online}</b>\n📊 Active: <b>{active}</b>\n🔴 Disabled: <b>{disabled}</b>\n⏰ Expired: <b>{expired}</b>\n⚠️ Limited: <b>{limited}</b>\n👥 Total users: <b>{total}</b>\n💾 RAM Usage: <b>{memory:.1f}%</b>\n📊 Week traffic: <b>{week_traffic}</b>\n📊 Month traffic: <b>{month_traffic}</b>\n🔗 Active nodes: <b>{active_nodes}/{total_nodes}</b>",
|
||
"inline_admin_system_stats_title": "🖥 System Statistics",
|
||
"log_referral_suffix": " (referral from {referrer_link})",
|
||
"log_open_profile_link": "👤 Open profile",
|
||
"log_open_referrer_profile_button": "👤 Referrer profile",
|
||
"log_new_user_registration": "👤 <b>New User</b>\n\n🆔 ID: <code>{user_id}</code>\n👤 Name: {user_display}{referral_text}\n📅 Time: {timestamp}",
|
||
"log_new_email_user_registration": "📧 <b>New User (email)</b>\n\n🆔 ID: <code>{user_id}</code>\n📧 Email: <code>{email}</code>{referral_text}\n📅 Time: {timestamp}",
|
||
"log_account_email_linked": "📧 <b>Email linked</b>\n\n🆔 User ID: <code>{user_id}</code>\n📨 Telegram ID: <code>{telegram_id}</code>\n👤 User: {user_display}\n📧 Email: <code>{email}</code>\n🕐 Time: {timestamp}",
|
||
"log_account_telegram_linked": "📨 <b>Telegram linked</b>\n\n🆔 User ID: <code>{user_id}</code>\n📨 Telegram ID: <code>{telegram_id}</code>\n👤 User: {user_display}\n📧 Email: <code>{email}</code>\n🕐 Time: {timestamp}",
|
||
"log_account_merged": "🔗 <b>Accounts merged</b>\n\n🆔 Kept user ID: <code>{primary_user_id}</code>\n🗑 Removed user ID: <code>{removed_user_id}</code>\n📨 Telegram ID: <code>{telegram_id}</code>\n👤 User: {user_display}\n📧 Email: <code>{email}</code>\n⏰ New end date: <b>{final_end_date}</b>\n📋 Kept panel UUID: <code>{primary_panel_user_uuid}</code>\n📋 Removed panel UUID: <code>{removed_panel_user_uuid}</code>\n🕐 Time: {timestamp}",
|
||
"log_payment_received": "{provider_emoji} <b>Payment Received</b>\n\n👤 User: {user_display}\n💰 Amount: <b>{amount} {currency}</b>\n📅 Period: <b>{months} mo.</b>\n🏦 Provider: {payment_provider}\n🕐 Time: {timestamp}",
|
||
"log_payment_received_traffic": "{provider_emoji} <b>Payment Received (traffic top-up)</b>\n\n👤 User: {user_display}\n💰 Amount: <b>{amount} {currency}</b>\n🗂 {traffic_summary}\n{tariff_line}🏦 Provider: {payment_provider}\n🕐 Time: {timestamp}",
|
||
"log_payment_traffic_purchase_line": "<b>{gb} GB</b> · {kind}",
|
||
"log_payment_traffic_kind_regular": "regular traffic",
|
||
"log_payment_traffic_kind_premium": "premium traffic",
|
||
"log_payment_tariff_line": "📋 Plan: <b>{name}</b>\n",
|
||
"traffic_warning_regular_almost": "⚠️ Traffic for plan <b>{tariff_name}</b> is almost used up.\nAbout <b>{left_pct}%</b> remains.\n\n<b>Current period:</b>\nused — <b>{used}</b>\navailable — <b>{remaining}</b>\nlimit — <b>{limit_total}</b>\n\nUse the button below to buy more regular traffic in the mini app.",
|
||
"traffic_warning_regular_depleted": "⛔️ Traffic for plan <b>{tariff_name}</b> is depleted.\n\n<b>Current period:</b>\nused — <b>{used}</b>\navailable — <b>{remaining}</b>\nlimit — <b>{limit_total}</b>\n\nAccess may be limited until the period resets or you top up.\n\nUse the button below to buy traffic.",
|
||
"traffic_warning_premium_almost": "⚠️ The <b>premium</b> server quota for plan <b>{tariff_name}</b> is almost used up.\nAbout <b>{left_pct}%</b> remains.\n\n<b>Current period:</b>\nused — <b>{used}</b>\navailable — <b>{remaining}</b>\nlimit — <b>{limit_total}</b>\n\nThis limit applies to:\n{servers}\n\nUse the button below to buy premium traffic in the mini app; unused purchased balance carries over to later months.",
|
||
"traffic_warning_premium_depleted": "⛔️ The <b>premium</b> server quota for plan <b>{tariff_name}</b> is used up.\n\n<b>Current period:</b>\nused — <b>{used}</b>\navailable — <b>{remaining}</b>\nlimit — <b>{limit_total}</b>\n\nThis limit applies to:\n{servers}\n\nAccess may be limited until the period resets or you buy more premium traffic.\n\nUse the button below to top up.",
|
||
"traffic_warning_premium_generic_servers": "• servers with premium access under your plan",
|
||
"traffic_warning_premium_servers_more": "… and {count} more servers",
|
||
"traffic_warn_btn_topup_webapp_regular": "Top up traffic (mini app)",
|
||
"traffic_warn_btn_topup_webapp_premium": "Top up premium traffic (mini app)",
|
||
"traffic_warn_btn_topup_regular": "Top up traffic",
|
||
"traffic_warn_btn_topup_premium": "Top up premium traffic",
|
||
"log_promo_activation": "🎁 <b>Promo Code Activated</b>\n\n👤 User: {user_display}\n🏷 Code: <code>{promo_code}</code>\n🎯 Bonus: <b>+{bonus_days}d</b>\n🕐 Time: {timestamp}",
|
||
"log_trial_activation": "🆓 <b>Trial Activated</b>\n\n👤 User: {user_display}\n⏰ Valid until: <b>{end_date}</b>\n🕐 Time: {timestamp}",
|
||
"log_panel_sync": "{status_emoji} <b>Panel Synchronization</b>\n\n📊 Status: <b>{status}</b>\n👥 Users processed: <b>{users_processed}</b>\n📋 Subscriptions synced: <b>{subs_synced}</b>\n🕐 Time: {timestamp}\n\n📝 Details:\n{details}",
|
||
"log_suspicious_promo": "⚠️ <b>Suspicious Promo Code Attempt</b>\n\n👤 User: {user_display}\n🆔 ID: <code>{user_id}</code>\n📝 Input: <pre>{suspicious_input}</pre>\n🕐 Time: {timestamp}",
|
||
"admin_logs_csv_export_started": "📄 Starting log export to CSV...",
|
||
"admin_logs_csv_export_success": "✅ Logs exported! File attached above.",
|
||
"admin_user_logs_title": "Logs for {user_display} (page {current_page}/{total_pages}):",
|
||
"admin_all_logs_title": "All Logs (page {current_page}/{total_pages}):",
|
||
"admin_csv_header_log_id": "Log ID",
|
||
"admin_csv_header_timestamp": "Timestamp",
|
||
"admin_csv_header_user_id": "User ID",
|
||
"admin_csv_header_telegram_username": "Username",
|
||
"admin_csv_header_telegram_first_name": "First Name",
|
||
"admin_csv_header_event_type": "Event Type",
|
||
"admin_csv_header_content": "Content",
|
||
"admin_csv_header_is_admin_event": "Admin Event",
|
||
"admin_csv_header_target_user_id": "Target User ID",
|
||
"admin_csv_header_raw_update_preview": "Update Preview",
|
||
"admin_banned_users_empty": "📋 Banned Users\n\nList is empty",
|
||
"admin_banned_users_list": "📋 Banned Users ({count}):\n\n{users}",
|
||
"admin_panel_stats_header": "Panel Statistics",
|
||
"admin_bulk_promo_step1_quantity": "📦 <b>Bulk Promo Code Creation</b>\n\n<b>Step 1 of 4:</b> Quantity\n\nEnter the number of promo codes to create (1-1000):",
|
||
"admin_bulk_promo_step2_bonus_days": "📦 <b>Bulk Promo Code Creation</b>\n\n<b>Step 2 of 4:</b> Bonus Days\n\nQuantity: <b>{quantity}</b>\n\nEnter the number of bonus days (1-365):",
|
||
"admin_bulk_promo_step3_max_activations": "📦 <b>Bulk Promo Code Creation</b>\n\n<b>Step 3 of 4:</b> Max Activations\n\nQuantity: <b>{quantity}</b>\nBonus days: <b>{bonus_days}</b>\n\nEnter the maximum number of activations for each promo code (1-10000):",
|
||
"admin_bulk_promo_step4_validity": "📦 <b>Bulk Promo Code Creation</b>\n\n<b>Step 4 of 4:</b> Validity Period\n\nQuantity: <b>{quantity}</b>\nBonus days: <b>{bonus_days}</b>\nMax activations: <b>{max_activations}</b>\n\nChoose the validity period for promo codes:",
|
||
"admin_bulk_promo_invalid_quantity": "❌ Quantity must be between 1 and 1000",
|
||
"admin_bulk_promo_enter_validity_days": "⏰ Enter the number of validity days for promo codes (1-365):",
|
||
"admin_bulk_promo_creating": "⏳ Creating {quantity} promo codes...",
|
||
"admin_promo_step1_code": "🎟 <b>Create Promo Code</b>\n\n<b>Step 1 of 4:</b> Promo Code\n\nEnter promo code (3-30 characters, letters and numbers only):",
|
||
"admin_promo_step2_bonus_days": "🎟 <b>Create Promo Code</b>\n\n<b>Step 2 of 4:</b> Bonus Days\n\nCode: <b>{code}</b>\n\nEnter the number of bonus days (1-365):",
|
||
"admin_promo_step3_max_activations": "🎟 <b>Create Promo Code</b>\n\n<b>Step 3 of 4:</b> Max Activations\n\nCode: <b>{code}</b>\nBonus days: <b>{bonus_days}</b>\n\nEnter the maximum number of activations (1-10000):",
|
||
"admin_promo_step4_validity": "🎟 <b>Create Promo Code</b>\n\n<b>Step 4 of 4:</b> Validity Period\n\nCode: <b>{code}</b>\nBonus days: <b>{bonus_days}</b>\nMax activations: <b>{max_activations}</b>\n\nChoose the validity period for the promo code:",
|
||
"admin_promo_code_already_exists": "❌ A promo code with this code already exists",
|
||
"admin_promo_unlimited_validity": "♾️ Unlimited",
|
||
"admin_promo_enter_validity_days": "⏰ Enter the number of validity days for the promo code (1-365):",
|
||
"admin_user_id_label": "🆔 <b>ID:</b>",
|
||
"admin_user_name_label": "👤 <b>Name:</b>",
|
||
"admin_user_username_label": "📱 <b>Username:</b>",
|
||
"admin_user_email_label": "✉️ <b>Email:</b>",
|
||
"admin_user_telegram_id_label": "📨 <b>Telegram ID:</b>",
|
||
"admin_user_language_label": "🌍 <b>Language:</b>",
|
||
"admin_user_registration_label": "📅 <b>Registration:</b>",
|
||
"admin_user_status_label": "🛡 <b>Status:</b>",
|
||
"admin_user_referral_label": "🎁 <b>Referred by:</b>",
|
||
"admin_user_panel_uuid_label": "🔗 <b>Panel UUID:</b>",
|
||
"admin_user_panel_status_label": "📊 <b>Panel Status:</b>",
|
||
"admin_user_traffic_label": "📊 <b>Traffic:</b>",
|
||
"admin_user_subscription_label": "💼 <b>Subscription:</b>",
|
||
"admin_user_trial_label": "🏡 <b>Trial:</b>",
|
||
"admin_user_status_banned": "🚫 Banned",
|
||
"admin_user_status_active": "✅ Active",
|
||
"admin_user_trial_used": "Used",
|
||
"admin_user_trial_not_used": "Not used",
|
||
"admin_user_ban_action_banned": "banned",
|
||
"admin_user_ban_action_unbanned": "unbanned",
|
||
"admin_user_na_value": "N/A",
|
||
"admin_user_subscription_none": "No active subscription",
|
||
"admin_user_actions_count_label": "📜 <b>Total actions:</b>",
|
||
"admin_user_total_paid_label": "💰 <b>Total Paid:</b>",
|
||
"admin_user_referral_revenue_label": "💸 <b>Referral Revenue:</b>",
|
||
"admin_user_invited_friends_label": "👥 <b>Friends invited:</b>",
|
||
"admin_user_ref_purchased_label": "💳 <b>Purchased subscription:</b>",
|
||
"admin_user_links_section_title": "🔗 <b>Links</b>",
|
||
"admin_user_subscription_url_label": "📡 <b>Subscription:</b>",
|
||
"admin_user_ref_bot_link_label": "🤖 <b>Referral link (bot):</b>",
|
||
"admin_user_ref_webapp_link_label": "🌐 <b>Referral link (web):</b>",
|
||
"admin_user_subscription_active_until": "⏰ <b>Active until:</b>",
|
||
"admin_user_subscription_error": "Loading error",
|
||
"admin_promo_management_button": "🎟 Promo Management",
|
||
"admin_promo_management_title": "🎟 <b>Promo Code Management</b>\n\nSelect a promo code for detailed view:",
|
||
"admin_promo_management_empty": "📭 No promo codes available",
|
||
"admin_promo_card_title": "🎟 <b>Promo Code: {code}</b>",
|
||
"admin_promo_card_bonus_days": "🎁 Bonus days: <b>{days}</b>",
|
||
"admin_promo_card_activations": "🔢 Activations: <b>{current}/{max}</b>",
|
||
"admin_promo_card_validity": "⏰ Valid until: <b>{validity}</b>",
|
||
"admin_promo_card_status": "📊 Status: <b>{status}</b>",
|
||
"admin_promo_card_created": "📅 Created: <b>{created}</b>",
|
||
"admin_promo_card_created_by": "👤 Created by: <b>{creator}</b>",
|
||
"admin_promo_status_active": "✅ Active",
|
||
"admin_promo_status_inactive": "🚫 Inactive",
|
||
"admin_promo_status_activated": "activated",
|
||
"admin_promo_status_deactivated": "deactivated",
|
||
"admin_promo_status_expired": "⏰ Expired",
|
||
"admin_promo_status_used_up": "🔄 Used up",
|
||
"admin_promo_toggle_status_button": "🔄 On/Off",
|
||
"admin_promo_view_activations_button": "📋 Activations",
|
||
"admin_promo_back_to_list_button": "⬅️ Back to list",
|
||
"admin_promo_toggle_success": "✅ Promo code {code} {status}",
|
||
"admin_promo_no_activations": "📋 <b>Activations of promo code: {code}</b>\n\n❌ No activations found",
|
||
"admin_promo_activations_header": "📋 <b>Activations of promo code: {code}</b>\n\n",
|
||
"admin_promo_activation_item": "👤 User ID: <b>{user_id}</b>\n📅 Date: <b>{date}</b>\n",
|
||
"admin_promo_back_to_detail_button": "⬅️ Back to promo",
|
||
"admin_panel_online_label": "Online",
|
||
"admin_panel_active_label": "Active",
|
||
"admin_panel_disabled_label": "Disabled",
|
||
"admin_panel_expired_label": "Expired",
|
||
"admin_panel_limited_label": "Limited",
|
||
"admin_panel_total_users_label": "Total users",
|
||
"admin_panel_memory_usage_label": "RAM Usage",
|
||
"admin_panel_traffic_week_label": "Traffic this week",
|
||
"admin_panel_traffic_month_label": "Traffic this month",
|
||
"admin_panel_nodes_label": "Active nodes",
|
||
"admin_panel_system_stats_error": "Error getting system statistics",
|
||
"admin_panel_bandwidth_stats_error": "Error getting bandwidth statistics",
|
||
"admin_panel_stats_fetch_error": "Error fetching panel data",
|
||
"admin_panel_stats_error_details": "Details",
|
||
"inline_referral_title": "Referral link",
|
||
"inline_referral_description": "Share referral link to get bonuses",
|
||
"inline_financial_description": "Today: {today} RUB",
|
||
"inline_system_description": "🟢 Online: {online}, 📊 Active: {active}",
|
||
"admin_user_stats_total_label": "Total",
|
||
"admin_user_stats_paid_subs_label": "With paid subscription",
|
||
"admin_user_stats_trial_label": "On trial period",
|
||
"admin_user_stats_inactive_label": "Inactive",
|
||
"admin_user_stats_banned_label": "Banned",
|
||
"admin_user_stats_referral_label": "Attracted via referral program",
|
||
"admin_financial_today_label": "Today",
|
||
"admin_financial_week_label": "This week",
|
||
"admin_financial_month_label": "This month",
|
||
"admin_financial_all_time_label": "All time",
|
||
"admin_financial_payments_label": "payments",
|
||
"admin_sync_details": "📊 Synchronization Statistics:\n🔍 Panel records checked: {panel_records_checked}\n👥 Users found in DB: {users_found_in_db}\n✨ New users created: {users_created}\n🔄 Users updated: {users_updated}\n📋 Subscriptions synced: {subscriptions_synced_count}\n ├── Created new: {subscriptions_created}\n └── Updated existing: {subscriptions_updated}{additional_stats}",
|
||
"admin_sync_no_telegram_id": "\n⚠️ Records without telegramId: {count}",
|
||
"admin_sync_not_found_in_db": "\n❌ Not found in DB: {count}",
|
||
"admin_payments_pagination_info": "📊 Showing {shown} of {total} payments (page {current_page}/{total_pages})",
|
||
"admin_payment_traffic_label": "🗂 Traffic: <b>{traffic_gb} GB</b>",
|
||
"admin_payment_months_label": "📅 Period: <b>{months} mo.</b>",
|
||
"my_subscription_details": "🔐 <b>My Subscription</b>\n\n⏰ Status: <b>{status}</b>\n📅 Active until: <b>{end_date}</b>\n📆 Days left: <b>{days_left}</b>\n\n🔗 Configuration link:\n<code>{config_link}</code>\n\n📊 Traffic ({traffic_period}):\nLimit: <b>{traffic_limit}</b>\nUsed: <b>{traffic_used}</b>",
|
||
"my_traffic_details": "🔐 <b>My Traffic</b>\n\n⏰ Status: <b>{status}</b>\n📅 Valid until: <b>{end_date}</b>\n\n🔗 Configuration link:\n<code>{config_link}</code>\n\n📊 Traffic ({traffic_period}):\nLimit: <b>{traffic_limit}</b>\nUsed: <b>{traffic_used}</b>\nLeft: <b>{traffic_left}</b>",
|
||
"traffic_no_expiry": "no limit",
|
||
"traffic_period_unknown": "unknown",
|
||
"autorenew_enable_button": "🔄 Enable auto-renew",
|
||
"autorenew_disable_button": "🛑 Disable auto-renew",
|
||
"subscription_autorenew_updated": "Auto-renew settings updated.",
|
||
"payment_methods_manage_button": "💳 Payment Methods",
|
||
"payment_methods_title": "💳 <b>Payment Methods</b>",
|
||
"payment_method_bind_button": "➕ Add method",
|
||
"payment_method_delete_button": "🗑 Remove",
|
||
"payment_method_view_button": "ℹ️ Details",
|
||
"payment_method_none": "You don't have a saved payment method yet.",
|
||
"payment_method_bound_success": "✅ Payment method added.",
|
||
"payment_method_deleted_success": "✅ Payment method removed.",
|
||
"payment_method_delete_confirm": "Remove saved payment method?",
|
||
"payment_method_card_title": "💳 {network} ••••{last4}",
|
||
"payment_method_generic_title": "💳 {network}",
|
||
"payment_method_wallet_title": "💼 YooMoney wallet ••••{last4}",
|
||
"payment_network_card": "Card",
|
||
"payment_network_generic": "Payment method",
|
||
"payment_method_added_at": "Added: {date}",
|
||
"payment_method_last_tx": "Last transaction: {date}",
|
||
"payment_method_tx_history_title": "📜 Transactions history",
|
||
"payment_method_no_history": "No transactions history.",
|
||
"subscription_purchase_title": "Subscription purchase for {months} mo.",
|
||
"traffic_purchase_title": "Traffic purchase {traffic_gb} GB",
|
||
"autorenew_enable_requires_card": "Link a payment card in Payment Methods before enabling auto-renew.",
|
||
"subscription_not_active": "You don't have an active subscription.",
|
||
"error_service_unavailable": "Service unavailable. Please try again later.",
|
||
"error_payment_gateway": "Payment service error. Please try again later.",
|
||
"traffic_na": "N/A",
|
||
"payment_service_unavailable": "Payment service is unavailable.",
|
||
"payment_service_unavailable_alert": "Payment service is unavailable. Please try again later.",
|
||
"error_creating_payment_record": "Error creating payment record. Please try again later.",
|
||
"error_payment_gateway_link_failed": "Error creating payment link. Please try again later.",
|
||
"status_active": "Active",
|
||
"status_inactive": "Inactive",
|
||
"admin_ads_section": "📈 Ads",
|
||
"admin_ads_header": "📈 Ad Campaigns:",
|
||
"admin_ads_empty": "No campaigns found",
|
||
"admin_ads_item": "ID: {id}\nSource: <b>{source}</b>\nstart={start_param}\nCost: {cost} RUB\nActive: {active}\n— Starts: {starts}\n— Trials: {trials}\n— Payers: {payers}\n— Revenue: {revenue} RUB",
|
||
"admin_ads_create_button": "➕ Create campaign",
|
||
"admin_ads_create_source_prompt": "Enter source (e.g., AEZA, VK, TG-channel):",
|
||
"admin_ads_create_start_param_prompt": "Enter start link parameter (e.g., AEZA). Will be used as start=AEZA",
|
||
"admin_ads_create_cost_prompt": "Enter campaign cost (RUB):",
|
||
"admin_ads_invalid_source": "❌ Invalid source. Enter up to 64 characters.",
|
||
"admin_ads_invalid_start_param": "❌ Invalid parameter. Allowed letters/digits/underscore/dash (2-64).",
|
||
"admin_ads_invalid_cost": "❌ Invalid amount. Enter a non-negative number.",
|
||
"admin_ads_start_param_exists": "❌ A campaign with this start parameter already exists.",
|
||
"admin_ads_created_success": "✅ Campaign created!\nID: {id}\nSource: {source}\nParam: {start_param}\nCost: {cost} RUB",
|
||
"admin_ads_back_to_menu_hint": "Done. Back to Ads section:",
|
||
"admin_ads_overview": "📈 <b>Ads</b>\n💰 Revenue: <b>{revenue} RUB</b>\n💸 Spent: <b>{cost} RUB</b>",
|
||
"back_to_ads_list_button": "⬅️ Back to list",
|
||
"admin_ads_card": "📈 <b>Campaign #{id}</b>\nSource: <b>{source}</b>\nstart=<code>{start_param}</code>\nCost: <b>{cost} RUB</b>\nActive: {active}\n\n👥 Starts: <b>{starts}</b>\n🆓 Trials: <b>{trials}</b>\n💳 Payers: <b>{payers}</b>\n💵 Revenue: <b>{revenue} RUB</b>",
|
||
"admin_ads_delete_button": "🗑 Delete campaign",
|
||
"admin_ads_delete_confirm": "Are you sure you want to delete campaign #{id}? This action is irreversible.",
|
||
"admin_ads_deleted_success": "Campaign deleted.",
|
||
"admin_ads_not_found": "Campaign not found.",
|
||
"free_kassa_order_full": "Order #{order_id} from {date}\n\n",
|
||
"email_footer_auto": "Sent automatically by {brand}. Please don't reply.",
|
||
"email_login_code_subject": "{code} — your sign-in code",
|
||
"email_login_code_preheader": "Your one-time code expires in {minutes} min.",
|
||
"email_login_code_heading": "Confirm your sign-in",
|
||
"email_login_code_intro": "Use this 6-digit code to finish signing in to your subscription dashboard.",
|
||
"email_login_code_expiry_html": "The code is valid for <strong style=\"color:#e6e9ef;\">{minutes} min</strong>.",
|
||
"email_login_code_security": "If you didn't request this code, you can ignore this email — your account stays safe.",
|
||
"email_login_code_magic_cta": "Sign in with one tap",
|
||
"email_login_code_magic_intro": "Don't want to type the code? Sign in with this link.",
|
||
"email_login_code_magic_hint": "The link is single-use and expires together with the code.",
|
||
"email_login_code_magic_or": "or",
|
||
"email_login_code_text": "Your verification code: {code}\n\nThe code is valid for {minutes} min.\nIf you didn't request this code, ignore this message.",
|
||
"email_login_code_text_magic": "Or sign in with this single-use link: {url}",
|
||
"email_set_password_code_subject": "{code} — code to create your password",
|
||
"email_set_password_code_preheader": "Confirm password creation. The code expires in {minutes} min.",
|
||
"email_set_password_code_heading": "Confirm password creation",
|
||
"email_set_password_code_intro": "Enter this 6-digit code in your account settings to create or change the password for email sign-in.",
|
||
"email_set_password_code_expiry_html": "The password creation code is valid for <strong style=\"color:#e6e9ef;\">{minutes} min</strong>.",
|
||
"email_set_password_code_security": "If you didn't try to create a password, ignore this email — your account password will not change.",
|
||
"email_set_password_code_text": "Your password creation code: {code}\n\nThe code is valid for {minutes} min.\nIf you didn't try to create a password, ignore this email — your account password will not change.",
|
||
"email_account_merged_subject": "Accounts merged",
|
||
"email_account_merged_preheader": "Your accounts were combined into one profile.",
|
||
"email_account_merged_heading": "Accounts merged",
|
||
"email_account_merged_intro": "We merged your accounts into a single profile so you keep one subscription and one history of payments.",
|
||
"email_account_merged_row_kept": "Kept account",
|
||
"email_account_merged_row_removed": "Removed account",
|
||
"email_account_merged_row_end_date": "New end date",
|
||
"email_account_merged_note": "Your subscription link is unchanged. The duplicate panel user was removed automatically.",
|
||
"email_account_merged_text": "We merged your accounts into one profile.\n\nKept account: {primary}\nRemoved account: {removed}\nPaid periods were combined. New subscription end date: {end_date}.\nYour subscription link stayed the same, and the later account was removed from Remnawave automatically.",
|
||
"email_payment_success_subject": "Payment received",
|
||
"email_payment_success_preheader": "Thanks — your subscription has been activated.",
|
||
"email_payment_success_heading": "Payment received",
|
||
"email_payment_success_intro_subscription": "Thanks! Your subscription has been extended by {months} month(s).",
|
||
"email_payment_success_intro_traffic": "Thanks! We added {traffic_gb} GB of traffic to your account.",
|
||
"email_payment_success_row_period": "Period",
|
||
"email_payment_success_row_traffic": "Traffic added",
|
||
"email_payment_success_row_amount": "Amount",
|
||
"email_payment_success_row_end_date": "Active until",
|
||
"email_payment_success_row_method": "Method",
|
||
"email_payment_success_period_value": "{months} month(s)",
|
||
"email_payment_success_traffic_value": "{traffic_gb} GB",
|
||
"email_payment_success_cta": "Open dashboard",
|
||
"email_payment_success_footer_note": "We'll remind you a few days before the subscription ends.",
|
||
"email_payment_success_text_subscription": "Payment received: {amount}.\nSubscription extended by {months} month(s).\nActive until: {end_date}.",
|
||
"email_payment_success_text_traffic": "Payment received: {amount}.\nTraffic added: {traffic_gb} GB.\nActive until: {end_date}.",
|
||
"email_payment_success_text_dashboard": "Dashboard: {url}",
|
||
"email_subscription_expiring_subject_today": "Your subscription ends today",
|
||
"email_subscription_expiring_subject_tomorrow": "1 day left on your subscription",
|
||
"email_subscription_expiring_subject_days": "{days} days left on your subscription",
|
||
"email_subscription_expiring_heading_today": "Subscription ends today",
|
||
"email_subscription_expiring_heading_tomorrow": "1 day left on your subscription",
|
||
"email_subscription_expiring_heading_days": "{days} days left on your subscription",
|
||
"email_subscription_expiring_preheader_today": "Renew today to avoid disconnection.",
|
||
"email_subscription_expiring_preheader_tomorrow": "Your subscription expires tomorrow.",
|
||
"email_subscription_expiring_preheader_days": "Your subscription expires in {days} days.",
|
||
"email_subscription_expiring_intro_today": "Your subscription is about to expire. Renew now to keep your connection active without interruption.",
|
||
"email_subscription_expiring_intro_tomorrow": "Your subscription expires tomorrow. Renew now to avoid losing access.",
|
||
"email_subscription_expiring_intro_days": "A heads-up so you can renew in advance and avoid any interruption.",
|
||
"email_subscription_expiring_row_days_left": "Days left",
|
||
"email_subscription_expiring_row_end_date": "Active until",
|
||
"email_subscription_expiring_cta": "Renew subscription",
|
||
"email_subscription_expiring_note": "If you've already renewed or use auto-renewal, you can ignore this email.",
|
||
"email_subscription_expiring_text": "{heading}.\nActive until: {end_date}.",
|
||
"email_subscription_expiring_text_renew": "Renew: {url}",
|
||
"wa_loading": "Loading...",
|
||
"wa_back": "Back",
|
||
"wa_next": "Next",
|
||
"wa_close": "Close",
|
||
"wa_auth_checking_login": "Checking sign-in...",
|
||
"wa_auth_login_confirm_failed": "Could not confirm sign-in",
|
||
"wa_auth_checking_telegram": "Checking Telegram...",
|
||
"wa_auth_access_denied": "Access denied",
|
||
"wa_auth_telegram_not_confirmed": "Telegram sign-in not confirmed",
|
||
"wa_auth_telegram_unavailable": "Telegram sign-in is currently unavailable",
|
||
"wa_auth_telegram_timeout": "Could not check Telegram availability. Try again later or sign in with email",
|
||
"wa_auth_telegram_not_configured": "Telegram sign-in is not configured",
|
||
"wa_auth_telegram_cancelled": "Telegram sign-in was cancelled",
|
||
"wa_auth_invalid_email": "Enter a valid email",
|
||
"wa_auth_sending_code": "Sending code...",
|
||
"wa_auth_send_code_failed": "Failed to send code",
|
||
"wa_auth_enter_code_6digits": "Enter the 6-digit code from the email",
|
||
"wa_auth_checking_code": "Checking code...",
|
||
"wa_auth_invalid_code": "Invalid code",
|
||
"wa_auth_code_expired": "Code expired",
|
||
"wa_auth_resend_wait": "You can resend in {seconds} sec.",
|
||
"wa_email_verification_title": "Email confirmation",
|
||
"wa_email_sent_to": "We sent a code to {email}",
|
||
"wa_email_code_aria": "Verification code",
|
||
"wa_email_placeholder": "Email",
|
||
"wa_confirm": "Confirm",
|
||
"wa_resend_code": "Resend code",
|
||
"wa_send_code_email": "Send code to email",
|
||
"wa_or": "or",
|
||
"wa_login_telegram_button": "Sign in with Telegram",
|
||
"wa_login_telegram_unavailable_button": "Telegram unavailable",
|
||
"wa_auth_legal_intro": "By creating an account, you agree to the",
|
||
"wa_auth_legal_privacy": "privacy policy",
|
||
"wa_auth_legal_and": "and",
|
||
"wa_auth_legal_agreement": "user agreement",
|
||
"wa_home_subscription_active": "Subscription active",
|
||
"wa_home_access_active": "Access active",
|
||
"wa_sub_term_forever": "Forever",
|
||
"wa_sub_term_value_unit": "{value} {unit}",
|
||
"wa_sub_term_day_one": "day",
|
||
"wa_sub_term_day_few": "days",
|
||
"wa_sub_term_day_many": "days",
|
||
"wa_sub_term_month_one": "month",
|
||
"wa_sub_term_month_few": "months",
|
||
"wa_sub_term_month_many": "months",
|
||
"wa_sub_term_year_one": "year",
|
||
"wa_sub_term_year_few": "years",
|
||
"wa_sub_term_year_many": "years",
|
||
"wa_home_subscription_inactive": "Subscription inactive",
|
||
"wa_until_date": "until {date}",
|
||
"wa_home_traffic_used": "Traffic used",
|
||
"wa_premium_traffic_title": "Premium servers",
|
||
"wa_premium_reset_monthly": "Separate monthly limit",
|
||
"wa_premium_access_limited": "Premium access is temporarily limited",
|
||
"wa_premium_unlimited": "Unlimited premium access",
|
||
"wa_premium_left": "Left",
|
||
"wa_premium_topup_balance": "Top-up balance",
|
||
"wa_renew": "Renew",
|
||
"wa_pay_subscription": "Pay subscription",
|
||
"wa_subscription_title": "Subscription",
|
||
"wa_subscription_choose_period": "Choose subscription period",
|
||
"wa_tariffs_title": "Tariffs",
|
||
"wa_tariffs_choose": "Choose a tariff and payment option",
|
||
"wa_tariff_choose_period_payment": "{tariff}: choose period and payment method",
|
||
"wa_back_to_tariffs": "Back to tariffs",
|
||
"wa_selected_tariff": "Selected tariff: {tariff}",
|
||
"wa_tariff_no_description": "Tariff description is not configured",
|
||
"wa_change_tariff": "Change tariff",
|
||
"wa_topup_traffic": "Buy traffic",
|
||
"wa_add_traffic": "Add traffic",
|
||
"wa_add_traffic_premium": "Add traffic on {target}",
|
||
"wa_current_tariff": "Current tariff: {tariff}",
|
||
"wa_tariff_options_loading": "Loading options",
|
||
"wa_tariff_options_failed": "Failed to load tariff options",
|
||
"wa_tariff_change_applied": "Tariff changed",
|
||
"wa_tariff_change_failed": "Failed to change tariff",
|
||
"wa_no_tariff_change_options": "No tariff change options available",
|
||
"wa_no_topup_options": "No top-up packages available",
|
||
"wa_tariff_model_period": "period",
|
||
"wa_tariff_model_traffic": "traffic",
|
||
"wa_tariff_change_recalc_days": "No payment: {days} days left",
|
||
"wa_tariff_change_convert_gb": "No payment: receive {gb} GB",
|
||
"wa_tariff_change_pay_diff": "Pay {price}",
|
||
"wa_tariff_change_buy_package": "Switch and add {gb} GB for {price}",
|
||
"wa_tariff_change_recalc_hint": "Remaining {days} days will be recalculated using the new tariff price.",
|
||
"wa_tariff_change_convert_hint": "Remaining {days} days will be converted into traffic.",
|
||
"wa_tariff_change_payment_hint": "The switch is applied after payment.",
|
||
"wa_tariff_change_targets_title": "New tariff",
|
||
"wa_tariff_change_strategy_title": "Switch option",
|
||
"wa_tariff_change_confirm_title": "Confirm tariff change",
|
||
"wa_tariff_change_confirm_desc": "Check what will happen after confirmation.",
|
||
"wa_tariff_change_confirm_target": "New tariff: {tariff}",
|
||
"wa_tariff_change_confirm_action": "Option: {action}",
|
||
"wa_tariff_change_confirm_recalc": "{days} days will remain after the switch.",
|
||
"wa_tariff_change_confirm_convert": "{gb} GB of traffic will be added.",
|
||
"wa_tariff_change_confirm_payment": "A payment for {price} will be created.",
|
||
"wa_confirm_and_apply": "Confirm and apply",
|
||
"wa_confirm_and_pay": "Confirm and pay",
|
||
"wa_topup_for_tariff": "Packages for {tariff}",
|
||
"wa_topup_carryover": "Top-up traffic does not expire: the monthly limit is used first, then the top-up balance.",
|
||
"wa_topup_warning_levels": "Traffic warnings are sent at {levels}%.",
|
||
"wa_topup_warning_medium": "{percent}% of traffic is used. Warnings are set at {levels}%.",
|
||
"wa_topup_warning_high": "{percent}% of traffic is used. Buying a package now is recommended.",
|
||
"wa_topup_warning_critical": "{percent}% of traffic is used. Access may be limited soon.",
|
||
"wa_apply": "Apply",
|
||
"wa_per_month_short": "/mo",
|
||
"wa_traffic_packages_title": "Traffic",
|
||
"wa_traffic_packages_choose": "Choose traffic package",
|
||
"wa_per_gb_short": "/GB",
|
||
"wa_buy_traffic": "Buy traffic",
|
||
"wa_activate_trial": "Activate trial",
|
||
"wa_trial_title": "Trial period",
|
||
"wa_trial_details": "{days} days, {traffic}",
|
||
"wa_trial_activated": "Trial activated",
|
||
"wa_trial_activation_failed": "Failed to activate trial",
|
||
"wa_install_and_configure": "Install and configure",
|
||
"wa_payment_methods_not_configured": "Payment methods are not configured yet",
|
||
"wa_pay": "Pay",
|
||
"wa_referral_link_title": "Your referral link",
|
||
"wa_link_unavailable": "Link is not available yet",
|
||
"wa_link_copied": "Link copied",
|
||
"wa_copy": "Copy",
|
||
"wa_referral_bonus_overview_title": "Bonus system",
|
||
"wa_referral_bonus_once_note": "Bonus is granted only once per invited user after their first payment.",
|
||
"wa_referral_bonus_registration_title": "For registration via referral link",
|
||
"wa_referral_bonus_paid_intro": "If a friend pays for a subscription:",
|
||
"wa_referral_bonus_you_days": "You: +{days} days",
|
||
"wa_referral_bonus_friend_days": "Friend: +{days} days",
|
||
"wa_referral_bonus_not_configured": "Referral bonuses are not configured",
|
||
"wa_promo_enter": "Enter promo code",
|
||
"wa_promo_activated_until": "Promo code activated. Subscription until {date}",
|
||
"wa_promo_activated": "Promo code activated",
|
||
"wa_promo_activation_failed": "Failed to activate promo code",
|
||
"wa_activate": "Activate",
|
||
"wa_settings_avatar_alt": "User avatar",
|
||
"wa_settings_language": "Language",
|
||
"wa_settings_theme": "Appearance theme",
|
||
"wa_settings_theme_follow_default": "Server default",
|
||
"wa_settings_theme_update_failed": "Failed to update theme",
|
||
"wa_settings_link_telegram": "Telegram linked",
|
||
"wa_settings_not_linked": "Not linked",
|
||
"wa_settings_link_email": "Email linked",
|
||
"wa_settings_email_not_linked": "Not linked",
|
||
"wa_settings_linked": "Linked",
|
||
"wa_settings_language_update_failed": "Failed to update language",
|
||
"wa_settings_user_agreement": "User agreement",
|
||
"wa_settings_privacy_policy": "Privacy policy",
|
||
"wa_logout": "Log out",
|
||
"wa_end_session": "End session",
|
||
"wa_navigation": "Navigation",
|
||
"wa_nav_home": "Home",
|
||
"wa_nav_settings": "Settings",
|
||
"wa_nav_devices": "Devices",
|
||
"wa_devices_title": "My devices",
|
||
"wa_devices_count": "{current} of {max}",
|
||
"wa_devices_unlimited": "Unlimited",
|
||
"wa_devices_refresh": "Refresh devices",
|
||
"wa_devices_loading": "Loading devices...",
|
||
"wa_devices_load_failed": "Failed to load devices",
|
||
"wa_devices_empty": "No devices yet",
|
||
"wa_devices_empty_hint": "You can connect up to {max} devices from your subscription app.",
|
||
"wa_device_fallback_name": "Device {index}",
|
||
"wa_devices_platform_unknown": "Platform unknown",
|
||
"wa_devices_connected_at": "Connected",
|
||
"wa_devices_disconnect": "Disconnect device",
|
||
"wa_devices_disconnect_title": "Disconnect device",
|
||
"wa_devices_disconnect_desc": "{device} will be removed from your device list. It may connect again next time you use the subscription on that device.",
|
||
"wa_devices_disconnect_confirm": "Disconnect",
|
||
"wa_device_disconnected": "Device disconnected",
|
||
"wa_device_disconnect_failed": "Failed to disconnect device",
|
||
"wa_cancel": "Cancel",
|
||
"wa_payment_created": "Payment created",
|
||
"wa_payment_create_failed": "Failed to create payment",
|
||
"wa_connect_link_unavailable": "Connection link is not available yet",
|
||
"wa_copied": "Copied",
|
||
"wa_unavailable": "Not available yet",
|
||
"wa_method_other_title": "Other methods",
|
||
"wa_unlimited_traffic": "Unlimited traffic",
|
||
"wa_traffic_of": "{used} of {limit}",
|
||
"wa_language_default": "English",
|
||
"wa_telegram_not_linked": "Telegram not linked",
|
||
"wa_tg_id_not_linked": "TG ID not linked",
|
||
"wa_nav_bonuses": "Bonuses",
|
||
"wa_method_platega_sbp_card": "SBP/Card",
|
||
"wa_method_platega_crypto": "Crypto",
|
||
"wa_settings_link_telegram_action": "Link Telegram",
|
||
"wa_settings_telegram_linked_title": "Telegram linked",
|
||
"wa_settings_link_email_action": "Link email",
|
||
"wa_settings_email_linked_title": "Email linked",
|
||
"wa_activate_promo_title": "Activate promo code",
|
||
"wa_link_email_modal_title": "Link email",
|
||
"wa_traffic_reset_none": "No reset",
|
||
"wa_traffic_reset_monthly": "Monthly reset",
|
||
"wa_traffic_reset_weekly": "Weekly reset",
|
||
"wa_traffic_reset_daily": "Daily reset",
|
||
"wa_traffic_reset_yearly": "Yearly reset",
|
||
"wa_traffic_reset_policy": "Traffic reset policy",
|
||
"wa_plan_one_year": "1 year",
|
||
"wa_link_email_modal_desc": "Enter your email and get a verification code",
|
||
"buy_hwid_devices_menu_button": "+ HWID devices",
|
||
"buy_hwid_devices_button": "+{count} HWID for {price} {currency_symbol}",
|
||
"select_hwid_device_package": "Select HWID device package:",
|
||
"choose_payment_method_hwid_devices": "Choose a payment method for extra HWID devices:",
|
||
"no_hwid_device_packages_available": "Extra HWID devices are not configured for this tariff.",
|
||
"hwid_devices_unlimited_no_topup": "Your device limit is already unlimited.",
|
||
"payment_description_hwid_devices": "Extra HWID devices +{count}",
|
||
"wa_buy_hwid_devices": "Buy devices",
|
||
"wa_device_topup_for_tariff": "Device packages for {tariff}",
|
||
"wa_hwid_devices_package": "+{count} devices",
|
||
"wa_no_hwid_device_options": "No device packages available",
|
||
"wa_device_topup_options_failed": "Could not load device packages",
|
||
"admin_nav_overview": "Overview",
|
||
"admin_nav_dashboard": "Dashboard",
|
||
"admin_nav_operations": "Operations",
|
||
"admin_nav_users": "Users",
|
||
"admin_nav_payments": "Payments",
|
||
"admin_nav_promos": "Promos",
|
||
"admin_nav_ads": "Ads",
|
||
"admin_nav_communication": "Communication",
|
||
"admin_nav_broadcast": "Broadcast",
|
||
"admin_nav_logs": "Logs",
|
||
"admin_nav_system": "System",
|
||
"admin_nav_tariffs": "Tariffs",
|
||
"admin_nav_themes": "Themes",
|
||
"admin_nav_settings": "Settings",
|
||
"admin_section_stats_title": "Dashboard",
|
||
"admin_section_stats_subtitle": "Audience, revenue, Remnawave panel, and recent payments",
|
||
"admin_section_users_title": "Users",
|
||
"admin_section_users_subtitle": "Search, bans, and account actions",
|
||
"admin_section_payments_title": "Payments",
|
||
"admin_section_payments_subtitle": "Transaction history and export",
|
||
"admin_section_promos_title": "Promos",
|
||
"admin_section_promos_subtitle": "Create and manage promo codes",
|
||
"admin_section_ads_title": "Ad Campaigns",
|
||
"admin_section_ads_subtitle": "UTM sources and attribution",
|
||
"admin_section_broadcast_title": "Broadcast",
|
||
"admin_section_broadcast_subtitle": "Mass messaging in Telegram",
|
||
"admin_section_logs_title": "Activity Logs",
|
||
"admin_section_logs_subtitle": "User events and admin actions",
|
||
"admin_section_tariffs_title": "Tariffs",
|
||
"admin_section_tariffs_subtitle": "Sales catalog, periods, packages, and limits",
|
||
"admin_section_themes_title": "Web App themes",
|
||
"admin_section_themes_subtitle": "Colors, fonts, and Mini App appearance",
|
||
"admin_section_settings_title": "App Settings",
|
||
"admin_section_settings_subtitle": "Overrides for .env, applied instantly",
|
||
"admin_filter_all": "All",
|
||
"admin_filter_not_banned": "Not banned",
|
||
"admin_filter_banned": "Banned",
|
||
"admin_filter_tg_linked": "With Telegram",
|
||
"admin_filter_no_tg": "No Telegram",
|
||
"admin_filter_email_linked": "With email",
|
||
"admin_filter_no_email": "No email",
|
||
"admin_filter_panel_linked": "With panel",
|
||
"admin_panel_status": "Panel status",
|
||
"admin_panel_status_all": "All statuses",
|
||
"admin_sort_registered_desc": "Newest first",
|
||
"admin_sort_registered_asc": "Oldest first",
|
||
"admin_sort_name_asc": "Name ↑",
|
||
"admin_sort_name_desc": "Name ↓",
|
||
"admin_sort_id_asc": "ID ↑",
|
||
"admin_sort_id_desc": "ID ↓",
|
||
"admin_sort_premium_ratio_asc": "Premium usage % ↑",
|
||
"admin_sort_premium_ratio_desc": "Premium usage % ↓",
|
||
"admin_premium_traffic_filter_label": "Premium traffic",
|
||
"admin_premium_traffic_filter_all": "All",
|
||
"admin_premium_traffic_filter_none": "No tariff limit",
|
||
"admin_premium_traffic_filter_unlimited": "Unlimited (override)",
|
||
"admin_premium_traffic_filter_good": "Premium: OK",
|
||
"admin_premium_traffic_filter_warn": "Premium: low",
|
||
"admin_premium_traffic_filter_critical": "Premium: depleted",
|
||
"admin_premium_traffic_na": "—",
|
||
"admin_close_menu": "Close menu",
|
||
"admin_sidebar_navigation": "Admin navigation",
|
||
"admin_exit": "Exit",
|
||
"admin_language": "Language",
|
||
"admin_menu": "Menu",
|
||
"admin_users_search_placeholder": "ID, @username, or email",
|
||
"admin_find": "Find",
|
||
"admin_filter": "Filter",
|
||
"admin_sort": "Sort",
|
||
"admin_total": "Total",
|
||
"admin_users_empty": "No users found",
|
||
"admin_users_col_registration": "Registered",
|
||
"admin_page": "Page",
|
||
"admin_page_short": "Page",
|
||
"admin_back": "Back",
|
||
"admin_next": "Next",
|
||
"admin_user": "User",
|
||
"admin_amount": "Amount",
|
||
"admin_provider": "Provider",
|
||
"admin_description": "Description",
|
||
"admin_status": "Status",
|
||
"admin_date": "Date",
|
||
"admin_payments_empty": "No payments",
|
||
"admin_payments_col_user_id": "ID",
|
||
"admin_payments_col_traffic_regular": "Main traffic",
|
||
"admin_payments_col_traffic_premium": "Premium traffic",
|
||
"admin_payments_col_actions": "",
|
||
"admin_payments_open_user": "Open user card",
|
||
"admin_payments_desc_traffic_package_regular": "Traffic package {gb} GB (standard)",
|
||
"admin_payments_desc_traffic_package_premium": "Traffic package {gb} GB (premium)",
|
||
"admin_logs_user_filter_placeholder": "Filter by user ID",
|
||
"admin_apply": "Apply",
|
||
"admin_reset": "Reset",
|
||
"admin_event": "Event",
|
||
"admin_content": "Content",
|
||
"admin_logs_empty": "No entries",
|
||
"admin_settings_section_general": "General",
|
||
"admin_settings_section_appearance": "Appearance",
|
||
"admin_settings_section_pricing": "Tariffs and prices",
|
||
"admin_settings_section_payments": "Payment systems",
|
||
"admin_settings_section_trial": "Trial",
|
||
"admin_settings_section_referral": "Referral program",
|
||
"admin_settings_section_notifications": "Notifications",
|
||
"admin_settings_section_devices": "Devices",
|
||
"admin_settings_section_support": "Support",
|
||
"admin_settings_subsection_common": "Common",
|
||
"admin_settings_subsection_remnawave": "Remnawave",
|
||
"admin_settings_subsection_telegram_stars": "Telegram Stars",
|
||
"admin_settings_subsection_yookassa": "YooKassa",
|
||
"admin_settings_subsection_freekassa": "FreeKassa",
|
||
"admin_settings_subsection_platega": "Platega",
|
||
"admin_settings_subsection_severpay": "SeverPay",
|
||
"admin_settings_subsection_cryptopay": "CryptoPay",
|
||
"admin_settings_subsection_wata": "Wata",
|
||
"admin_settings_subsection_heleket": "Heleket",
|
||
"admin_settings_provider_webhook_url": "Webhook URL",
|
||
"admin_settings_provider_webhook_url_hint": "Use this URL in the provider webhook settings.",
|
||
"admin_settings_provider_webhook_base_missing": "Set WEBHOOK_BASE_URL in .env to show the full URL for {path}.",
|
||
"admin_copy": "Copy",
|
||
"admin_copied": "Copied",
|
||
"admin_settings_validation_errors": "Errors: {errors}",
|
||
"admin_settings_save_error": "Error: {error}",
|
||
"admin_sync_started": "Synchronization started",
|
||
"admin_sync_error": "Synchronization error",
|
||
"admin_error": "Error",
|
||
"admin_link_copied": "Link copied",
|
||
"admin_user_banned": "User banned",
|
||
"admin_user_unbanned": "User unbanned",
|
||
"admin_message_sent": "Message sent",
|
||
"admin_message_send_failed": "Could not send",
|
||
"admin_subscription_extended": "Subscription extended by {days} days",
|
||
"admin_trial_reset": "Trial reset",
|
||
"admin_user_deleted": "User deleted",
|
||
"admin_broadcast_target_all": "All active",
|
||
"admin_broadcast_target_active": "With subscription",
|
||
"admin_broadcast_target_inactive": "No subscription",
|
||
"admin_expired_at": "Expired {date}",
|
||
"admin_expired_badge": "Expired {date}",
|
||
"admin_stats_error": "Failed to load statistics: {error}",
|
||
"admin_stats_label_users": "Users",
|
||
"admin_stats_trend_banned": "Banned: {count}",
|
||
"admin_stats_label_paid_subs": "Paid Subscriptions",
|
||
"admin_stats_trend_trials": "Trials: {count}",
|
||
"admin_stats_label_today_rev": "Today's Revenue",
|
||
"admin_stats_trend_payments": "{count} payments",
|
||
"admin_stats_label_week": "This Week",
|
||
"admin_stats_trend_month": "Month: {value}",
|
||
"admin_stats_label_all_time": "All Time",
|
||
"admin_stats_sync_label": "Sync with panel",
|
||
"admin_stats_label_queue": "Queue",
|
||
"admin_stats_trend_groups": "Groups: {count}",
|
||
"admin_stats_recent_payments": "Recent Payments",
|
||
"admin_stats_records_count": "{count} records",
|
||
"admin_stats_section_audience": "Audience",
|
||
"admin_stats_section_audience_hint": "Bot users and subscriptions",
|
||
"admin_stats_trend_referrals": "Referrals: {count}",
|
||
"admin_stats_label_inactive": "No active subscription",
|
||
"admin_stats_trend_new_today": "Registrations today: {count}",
|
||
"admin_stats_section_revenue": "Revenue",
|
||
"admin_stats_section_revenue_hint": "Succeeded payments, shop currency",
|
||
"admin_stats_revenue_chart_title": "Daily revenue (UTC)",
|
||
"admin_stats_revenue_chart_aria": "Daily revenue chart; hover for date and amount",
|
||
"admin_stats_revenue_chart_aria_period": "Daily revenue, last {days} days (UTC)",
|
||
"admin_stats_revenue_chart_hint": "Hover the chart to see each day’s total",
|
||
"admin_stats_revenue_chart_range_sum": "Selected range total: {value}",
|
||
"admin_stats_revenue_chart_days_available": "Series length: {count} days",
|
||
"admin_stats_revenue_chart_uplot_time": "Time",
|
||
"admin_stats_revenue_chart_uplot_value": "Value",
|
||
"admin_stats_revenue_period_7": "7d",
|
||
"admin_stats_revenue_period_14": "14d",
|
||
"admin_stats_revenue_period_30": "30d",
|
||
"admin_stats_revenue_period_90": "90d",
|
||
"admin_stats_revenue_period_180": "6 mo",
|
||
"admin_stats_revenue_period_365": "1 yr",
|
||
"admin_stats_revenue_period_custom": "Custom",
|
||
"admin_stats_revenue_custom_range_title": "Date range (UTC)",
|
||
"admin_stats_revenue_custom_range_apply": "Apply",
|
||
"admin_stats_revenue_granularity_aria": "Revenue chart step",
|
||
"admin_stats_revenue_granularity_day": "By day",
|
||
"admin_stats_revenue_granularity_week": "By week",
|
||
"admin_stats_revenue_granularity_month": "By month",
|
||
"admin_stats_revenue_chart_hint_week": "Weeks start on Monday (UTC); hover the chart for totals",
|
||
"admin_stats_revenue_chart_hint_month": "Months are calendar months (UTC); hover the chart for totals",
|
||
"admin_stats_revenue_chart_bucket_count": "Points: {count}",
|
||
"admin_stats_revenue_chart_custom_span": "Range: {days} d.",
|
||
"admin_stats_revenue_tooltip_day": "Day",
|
||
"admin_stats_revenue_tooltip_amount": "Amount",
|
||
"admin_stats_revenue_avg_check": "Average ticket today: {value}",
|
||
"admin_stats_revenue_avg_none": "No successful payments today",
|
||
"admin_stats_revenue_avg_ticket_label": "Avg. ticket (today)",
|
||
"admin_stats_card_paid_caption": "Trials shown in the badge",
|
||
"admin_stats_card_inactive_caption": "Share of all users is in the badge",
|
||
"admin_stats_revenue_last_7_calendar": "Last 7 calendar days total",
|
||
"admin_stats_revenue_prev_7_calendar": "Previous 7 days",
|
||
"admin_stats_revenue_growth": "vs previous 7 days: {value}%",
|
||
"admin_stats_revenue_growth_na": "Not enough history for 7×7 comparison",
|
||
"admin_stats_revenue_total_14": "14-day chart total",
|
||
"admin_stats_revenue_rolling_week": "Rolling 7 days",
|
||
"admin_stats_revenue_rolling_month": "Rolling 30 days",
|
||
"admin_stats_revenue_all_time": "All time",
|
||
"admin_stats_revenue_no_chart": "No data for chart",
|
||
"admin_stats_section_panel": "Remnawave panel",
|
||
"admin_stats_panel_unavailable": "Panel unavailable",
|
||
"admin_stats_section_panel_hint": "Live data from panel API",
|
||
"admin_stats_panel_unavailable_detail": "Check REMNAWAVE_* settings and panel API reachability.",
|
||
"admin_stats_panel_online": "Online",
|
||
"admin_stats_panel_active": "Active",
|
||
"admin_stats_panel_expired": "Expired",
|
||
"admin_stats_panel_disabled": "Disabled",
|
||
"admin_stats_panel_limited": "Limited",
|
||
"admin_stats_panel_total_users": "Total in panel",
|
||
"admin_stats_panel_nodes_online": "Nodes in breakdown",
|
||
"admin_stats_panel_nodes_online_hint": "Same as the number of rows in the per-node section below (7-day window from bandwidth or node metrics). Not the same as system.nodes.totalOnline from /system/stats, which often counts backends/inbounds and can exceed visible nodes.",
|
||
"admin_stats_panel_memory": "Memory",
|
||
"admin_stats_panel_bw_week": "Traffic 7 days",
|
||
"admin_stats_panel_bw_month": "Traffic 30 days",
|
||
"admin_stats_panel_inner_nodes": "Per node (7 days)",
|
||
"admin_stats_panel_inner_nodes_hint": "Traffic from bandwidth API; online users from node metrics, sorted by traffic",
|
||
"admin_stats_panel_node_users_online": "Online now: {count}",
|
||
"admin_stats_panel_cpu": "CPU",
|
||
"admin_stats_panel_nodes_empty": "No per-node breakdown from the panel",
|
||
"admin_stats_panel_nodes_overflow": "+{count} more",
|
||
"admin_stats_sync_last": "Last run",
|
||
"admin_stats_sync_processed": "Processed: {users} users, {subs} subscriptions",
|
||
"admin_stats_queue_users": " users",
|
||
"admin_stats_queue_groups": " groups",
|
||
"admin_id": "ID",
|
||
"admin_status_default": "Default",
|
||
"admin_status_current": "Current",
|
||
"admin_tariff_squads": "Squads",
|
||
"admin_tariff_premium": "Premium",
|
||
"admin_settings_badge_secret": "Secret",
|
||
"admin_settings_secret_configured": "Secret is set",
|
||
"admin_settings_secret_empty": "Not set",
|
||
"admin_settings_badge_override": "Override",
|
||
"admin_status_limited": "Limited",
|
||
"admin_status_expired": "Expired",
|
||
"admin_status_disabled": "Disabled",
|
||
"admin_status_bot_only": "Bot Only",
|
||
"admin_user_detail_title": "User #{id}",
|
||
"admin_user_avatar_open": "Open avatar",
|
||
"admin_user_avatar_title": "Avatar",
|
||
"admin_user_open_tg_profile": "Open Telegram",
|
||
"admin_user_open_tg_profile_hint": "Open Telegram profile",
|
||
"admin_user_open_tg_profile_id_hint": "This user has no username: the bot will send you a Telegram message with a profile button.",
|
||
"admin_user_tg_profile_unavailable": "Telegram profile link is unavailable",
|
||
"admin_user_tg_profile_link_sent": "Link sent to Telegram",
|
||
"admin_user_tg_profile_link_failed": "Failed to send link",
|
||
"admin_user_profile_link_message": "User profile: <b>{name}</b>\nUser ID: <code>{user_id}</code>\nTelegram ID: <code>{telegram_id}</code>\n\nTap the button below to open the profile in Telegram.",
|
||
"admin_close": "Close",
|
||
"admin_loading": "Loading…",
|
||
"admin_badge_banned": "Banned",
|
||
"admin_badge_active": "Active",
|
||
"admin_badge_subscription": "Subscription",
|
||
"admin_badge_no_subscription": "No subscription",
|
||
"admin_user_label_paid": "Total Paid",
|
||
"admin_user_label_logs": "Logs",
|
||
"admin_user_section_profile": "Profile",
|
||
"admin_user_label_registration": "Registration",
|
||
"admin_user_label_ref_code": "Referral Code",
|
||
"admin_user_section_links": "Links",
|
||
"admin_user_copy_tooltip": "Copy",
|
||
"admin_user_sub_link_copied": "Subscription link copied",
|
||
"admin_user_ref_link_copied": "Referral link copied",
|
||
"admin_user_tab_subscription": "Subscription",
|
||
"admin_user_tab_activity": "Activity",
|
||
"admin_user_tab_logs": "Logs",
|
||
"admin_user_tab_actions": "Actions",
|
||
"admin_user_logs_section_title": "User logs",
|
||
"admin_user_logs_admin_event": "Admin",
|
||
"admin_refresh": "Refresh",
|
||
"admin_user_label_active_until": "Active until",
|
||
"admin_user_label_tariff": "Tariff",
|
||
"admin_user_label_auto_renew": "Auto-renew",
|
||
"admin_user_label_provider": "Provider",
|
||
"admin_user_label_main_traffic": "Main Traffic",
|
||
"admin_user_traffic_left": "Left: {left}",
|
||
"admin_user_label_premium_squads": "Premium Squads",
|
||
"user_override_unlimited_short": "Unlimited",
|
||
"user_premium_override_card_title": "Premium traffic",
|
||
"user_premium_override_card_hint": "Unlimited access and extra volume for premium squads on top of the tariff.",
|
||
"user_regular_override_card_title": "Main traffic",
|
||
"user_regular_override_card_hint": "Unlimited-style ceiling and a persistent bonus on the main traffic limit.",
|
||
"user_regular_override_save": "Save",
|
||
"user_regular_override_status_unlimited": "Current: unlimited",
|
||
"regular_override_saved": "Main traffic override saved",
|
||
"user_traffic_override_title": "Traffic overrides",
|
||
"user_traffic_override_hint": "Extra main or premium traffic limits on top of the tariff; unlimited applies to premium squads only.",
|
||
"user_regular_override_bonus": "Extra main traffic, GB",
|
||
"user_regular_override_bonus_hint": "Persistent bonus bytes added to the main traffic limit (not a balance top-up).",
|
||
"user_regular_override_status_bonus": "Main traffic now: +{gb} GB",
|
||
"user_regular_override_status_none": "No main-traffic bonus override",
|
||
"regular_override_invalid_bonus": "Invalid GB value for main traffic",
|
||
"user_premium_override_title": "Premium override",
|
||
"user_premium_override_hint": "Grant free unlimited access or extra premium traffic on top of the tariff limit.",
|
||
"user_premium_override_bonus_hint": "Ignored while unlimited premium is enabled.",
|
||
"user_premium_override_unlimited": "Unlimited premium",
|
||
"user_premium_override_bonus": "Extra premium traffic, GB",
|
||
"user_premium_override_save": "Save override",
|
||
"user_premium_override_status_unlimited": "Current: unlimited",
|
||
"user_premium_override_status_bonus": "Current: +{gb} GB",
|
||
"user_premium_override_status_none": "No premium override",
|
||
"user_premium_unlimited_value": "∞ (used {used})",
|
||
"user_premium_unlimited_hint": "Unlimited (admin override)",
|
||
"premium_override_saved": "Premium override saved",
|
||
"premium_override_invalid_bonus": "Invalid GB value",
|
||
"user_traffic_grant_title": "Grant traffic",
|
||
"user_traffic_grant_hint": "Credit GB to the user's balance — same effect as a top-up purchase, but without payment. The panel limit and squads refresh immediately.",
|
||
"user_traffic_grant_kind": "Traffic kind",
|
||
"user_traffic_grant_kind_regular": "Regular",
|
||
"user_traffic_grant_kind_premium": "Premium",
|
||
"user_traffic_grant_gb": "GB to grant",
|
||
"user_traffic_grant_submit": "Grant",
|
||
"traffic_grant_invalid_gb": "Enter a positive number of GB",
|
||
"traffic_grant_regular_done": "+{gb} GB of regular traffic granted",
|
||
"traffic_grant_premium_done": "+{gb} GB of premium traffic granted",
|
||
"admin_user_no_active_subscription": "No active subscription",
|
||
"admin_user_history_title": "Subscription History · {count}",
|
||
"admin_user_history_no_tariff": "No tariff",
|
||
"admin_user_history_until": "until {date}",
|
||
"admin_user_history_active": "Active",
|
||
"admin_user_history_status_panel": "History",
|
||
"admin_user_recent_payments_title": "Recent Payments · {count}",
|
||
"admin_user_no_payments": "No payments",
|
||
"admin_user_btn_reset_trial": "Reset Trial",
|
||
"admin_user_label_extend": "Extend Subscription",
|
||
"admin_user_label_extend_days": "Days",
|
||
"admin_user_btn_extend": "Extend",
|
||
"admin_user_label_telegram_msg": "Telegram Message",
|
||
"admin_user_hint_telegram_msg": "Telegram HTML formatting supported",
|
||
"admin_user_placeholder_msg": "Message text",
|
||
"admin_user_btn_preview_tg": "Preview in Telegram",
|
||
"admin_user_btn_send_msg": "Send Message",
|
||
"admin_user_danger_zone_title": "Danger Zone",
|
||
"admin_user_danger_zone_subtitle": "These actions require confirmation and (for deletion) are irreversible",
|
||
"admin_user_btn_unban": "Unban user",
|
||
"admin_user_btn_ban": "Ban user",
|
||
"admin_user_btn_delete_account": "Delete account",
|
||
"admin_user_msg_confirm_title": "Send message to user?",
|
||
"admin_user_msg_confirm_recipient": "Recipient: {name}",
|
||
"admin_user_btn_cancel": "Cancel",
|
||
"admin_user_btn_confirm_send": "Confirm Send",
|
||
"admin_user_ban_confirm_title": "Ban user?",
|
||
"admin_user_ban_confirm_subtitle": "{name} will no longer be able to interact with the bot. This can be undone later.",
|
||
"admin_user_delete_confirm_title": "Delete user?",
|
||
"admin_user_delete_confirm_subtitle": "This action is irreversible. All payments, subscriptions, and logs will be deleted.",
|
||
"admin_user_btn_confirm_delete": "Confirm Delete",
|
||
"admin_btn_add_premium_squad": "Add premium squad",
|
||
"admin_tariff_col_volume_gb": "Volume, GB",
|
||
"admin_tariff_col_price_rub": "Price, ₽",
|
||
"admin_tariff_col_price_stars": "Price, ⭐",
|
||
"admin_tariff_col_price_stars_full": "Price, ⭐ Stars",
|
||
"admin_tariff_col_period_months": "Period, mo.",
|
||
"admin_tariff_col_hwid_count": "+ devices",
|
||
"admin_tariff_label_hwid_count_full": "How many devices does this package add",
|
||
"admin_tariff_label_price_rub": "Price in Rubles",
|
||
"admin_tariff_label_price_stars": "Price in Telegram Stars",
|
||
"admin_status_active": "Active",
|
||
"admin_aria_label_main_traffic": "Main traffic usage",
|
||
"admin_aria_label_premium_traffic": "Premium traffic usage",
|
||
"admin_btn_delete": "Delete",
|
||
"admin_promos_empty": "No promo codes found",
|
||
"admin_btn_create": "Create",
|
||
"admin_btn_campaign": "Campaign",
|
||
"admin_btn_tariff": "Tariff",
|
||
"admin_btn_sync": "Synchronize",
|
||
"admin_btn_syncing": "Synchronizing...",
|
||
"admin_btn_save": "Save",
|
||
"admin_btn_saving": "Saving...",
|
||
"admin_btn_enable": "On",
|
||
"admin_btn_disable": "Off",
|
||
"admin_btn_show_more": "Show more",
|
||
"admin_settings_dirty_count": "Changes: {count}",
|
||
"admin_promo_col_code": "Code",
|
||
"admin_promo_col_bonus": "Bonus",
|
||
"admin_promo_col_activations": "Activations",
|
||
"admin_promo_col_valid_until": "Valid until",
|
||
"admin_promo_col_status": "Status",
|
||
"admin_promo_create_title": "Create promo code",
|
||
"admin_promo_label_code": "Code",
|
||
"admin_promo_label_bonus_days": "Bonus (days)",
|
||
"admin_promo_label_max_activations": "Max activations",
|
||
"admin_promo_label_valid_days": "Validity (days)",
|
||
"admin_ad_create_title": "New campaign",
|
||
"admin_ad_label_source": "Source",
|
||
"admin_ad_label_param": "start parameter",
|
||
"admin_ad_hint_param": "Unique identifier for the referral link",
|
||
"admin_ad_label_cost": "Cost, RUB",
|
||
"admin_ads_col_source": "Source",
|
||
"admin_ads_col_param": "Parameter",
|
||
"admin_ads_col_cost": "Cost",
|
||
"admin_ads_col_registrations": "Registrations",
|
||
"admin_ads_col_conversions": "Conversions",
|
||
"admin_ads_col_status": "Status",
|
||
"admin_no_data": "No data",
|
||
"admin_settings_hint": "Changes in the admin panel take precedence over .env. The 'Reset' button returns the value from environment variables.",
|
||
"admin_collapse_all": "Collapse all",
|
||
"admin_expand_all": "Expand all",
|
||
"admin_settings_params_count": "{count} parameters",
|
||
"admin_settings_overridden_count": "{count} override",
|
||
"admin_settings_fields_count": "{count} fields",
|
||
"admin_settings_field_log_admin_actions_label": "Log administrator actions",
|
||
"admin_settings_field_log_admin_actions_description": "When disabled, events from users listed in ADMIN_IDS are not stored in message logs.",
|
||
"admin_show": "Show",
|
||
"admin_hide": "Hide",
|
||
"admin_tariffs_stat_total": "Total tariffs",
|
||
"admin_tariffs_stat_enabled": "Enabled",
|
||
"admin_tariffs_stat_default": "Default",
|
||
"admin_tariffs_stat_default_hint": "Used for new subscriptions",
|
||
"admin_tariffs_stat_disabled": "Disabled",
|
||
"admin_tariffs_stat_disabled_hint": "Hidden from showcase",
|
||
"admin_tariffs_catalog_empty": "The catalog is empty. Add your first tariff; a catalog JSON file will be created after saving.",
|
||
"admin_themes_catalog_title": "Web App themes",
|
||
"admin_themes_catalog_sub": "Select the current theme from a card; edit appearance through files in the theme folder",
|
||
"admin_themes_use_primary_accent": "Use primary accent color",
|
||
"admin_themes_use_in_admin": "Use in admin panel",
|
||
"admin_themes_catalog_empty": "The catalog is empty. Add a theme folder to data/themes and refresh.",
|
||
"admin_themes_saved": "Themes saved",
|
||
"admin_themes_save_failed": "Failed to save themes",
|
||
"appearance_logo_uploaded_pending": "Logo uploaded and applied.",
|
||
"appearance_favicon_uploaded_pending": "Favicon uploaded and applied.",
|
||
"admin_no_description": "No description",
|
||
"admin_tariff_model_traffic": "Traffic",
|
||
"admin_tariff_model_periods": "Periods",
|
||
"admin_tariff_devices": "Devices",
|
||
"admin_btn_configure": "Configure",
|
||
"admin_btn_set_default": "Set Default",
|
||
"admin_btn_delete_tariff": "Delete Tariff",
|
||
"admin_months_short": "mo.",
|
||
"admin_at": "for",
|
||
"admin_tariff_traffic_packages": "Traffic packages",
|
||
"admin_btn_refresh": "Refresh",
|
||
"admin_btn_create_tariff": "Create Tariff",
|
||
"admin_enabled": "Enabled",
|
||
"admin_disabled": "Disabled",
|
||
"admin_broadcast_title": "Broadcast",
|
||
"admin_broadcast_subtitle": "Delivery via message queue",
|
||
"admin_broadcast_label_audience": "Audience",
|
||
"admin_broadcast_label_text": "Message Text",
|
||
"admin_broadcast_hint_text": "Telegram HTML formatting supported",
|
||
"admin_btn_queue": "Queue Message",
|
||
"admin_btn_sending": "Sending...",
|
||
"admin_broadcast_stat_queued": "Queued",
|
||
"admin_broadcast_stat_failed": "Failed",
|
||
"admin_broadcast_started": "Broadcast started",
|
||
"admin_broadcast_failed": "Broadcast failed",
|
||
"admin_user_short": "User",
|
||
"admin_target_short": "Target",
|
||
"admin_settings_field_default_language_label": "Default Language",
|
||
"admin_settings_field_default_language_description": "Controls the 'Default Language' setting in admin overrides.",
|
||
"admin_settings_field_default_currency_symbol_label": "Default Currency Symbol",
|
||
"admin_settings_field_default_currency_symbol_description": "Controls the 'Default Currency Symbol' setting in admin overrides.",
|
||
"admin_settings_field_support_link_label": "Support Link",
|
||
"admin_settings_field_support_link_description": "Controls the 'Support Link' setting in admin overrides.",
|
||
"admin_settings_field_server_status_url_label": "Server Status URL",
|
||
"admin_settings_field_terms_of_service_url_label": "Terms Of Service URL",
|
||
"admin_settings_field_privacy_policy_url_label": "Privacy Policy URL",
|
||
"admin_settings_field_user_agreement_url_label": "User Agreement URL",
|
||
"admin_settings_field_disable_welcome_message_label": "Disable Welcome Message",
|
||
"admin_settings_field_start_command_description_label": "Start Command Description",
|
||
"admin_settings_field_required_channel_id_label": "Required Channel ID",
|
||
"admin_settings_field_required_channel_id_description": "Controls the 'Required Channel ID' setting in admin overrides.",
|
||
"admin_settings_field_required_channel_link_label": "Required Channel Link",
|
||
"admin_settings_field_required_channel_link_description": "Controls the 'Required Channel Link' setting in admin overrides.",
|
||
"admin_settings_field_panel_api_url_label": "Remnawave API URL",
|
||
"admin_settings_field_panel_api_url_description": "For example, https://panel.example.com/api.",
|
||
"admin_settings_field_panel_api_key_label": "Remnawave API key",
|
||
"admin_settings_field_panel_api_key_description": "Secret API key for the panel.",
|
||
"admin_settings_field_panel_webhook_secret_label": "Remnawave webhook secret",
|
||
"admin_settings_field_panel_webhook_secret_description": "Used to verify incoming panel webhooks.",
|
||
"admin_settings_field_user_squad_uuids_label": "Default Internal Squads",
|
||
"admin_settings_field_user_squad_uuids_description": "Comma-separated UUIDs for the legacy mode without a JSON tariff catalog.",
|
||
"admin_settings_field_user_external_squad_uuid_label": "Default External Squad",
|
||
"admin_settings_field_user_external_squad_uuid_description": "Optional External Squad UUID for new users.",
|
||
"admin_settings_field_webapp_title_label": "WebApp Title",
|
||
"admin_settings_field_subscription_mini_app_url_label": "Public Mini App URL",
|
||
"admin_settings_field_subscription_mini_app_url_description": "For example, https://app.example.com/.",
|
||
"admin_settings_field_webapp_primary_color_label": "WebApp Primary Color",
|
||
"admin_settings_field_webapp_logo_use_emoji_label": "Use emoji logo",
|
||
"admin_settings_field_webapp_logo_url_label": "WebApp Logo URL",
|
||
"admin_settings_field_webapp_logo_emoji_label": "WebApp Logo Emoji",
|
||
"admin_settings_field_webapp_logo_emoji_font_label": "Emoji logo font",
|
||
"admin_settings_field_webapp_logo_emoji_font_description": "Choose the font used to render the emoji logo.",
|
||
"admin_settings_field_webapp_logo_emoji_font_choice_system": "System (default)",
|
||
"admin_settings_field_webapp_logo_emoji_font_choice_noto_color": "Noto Color Emoji",
|
||
"admin_settings_field_webapp_logo_emoji_font_choice_noto_color_animated": "Noto Color Emoji Animated",
|
||
"admin_settings_field_webapp_logo_emoji_font_choice_noto_emoji": "Noto Emoji",
|
||
"admin_settings_field_webapp_logo_emoji_font_choice_twemoji": "Twitter Emoji",
|
||
"admin_settings_field_webapp_logo_emoji_font_choice_openmoji": "OpenMoji",
|
||
"admin_settings_field_webapp_logo_emoji_font_choice_apple": "Apple Color Emoji (local)",
|
||
"admin_settings_field_webapp_logo_emoji_font_choice_segoe": "Segoe UI Emoji (local)",
|
||
"admin_settings_field_webapp_logo_emoji_font_choice_noto_local": "Noto Emoji (local)",
|
||
"admin_settings_field_webapp_favicon_use_custom_label": "Use separate favicon",
|
||
"admin_settings_field_webapp_favicon_url_label": "Separate favicon URL",
|
||
"admin_settings_field_webapp_logo_favicon_url_label": "Favicon from logo",
|
||
"admin_settings_field_webapp_enabled_label": "WebApp Enabled",
|
||
"admin_settings_field_month_1_enabled_label": "Month 1 Enabled",
|
||
"admin_settings_field_month_3_enabled_label": "Month 3 Enabled",
|
||
"admin_settings_field_month_6_enabled_label": "Month 6 Enabled",
|
||
"admin_settings_field_month_12_enabled_label": "Month 12 Enabled",
|
||
"admin_settings_field_rub_price_1_month_label": "Rub Price 1 Month",
|
||
"admin_settings_field_rub_price_3_months_label": "Rub Price 3 Months",
|
||
"admin_settings_field_rub_price_6_months_label": "Rub Price 6 Months",
|
||
"admin_settings_field_rub_price_12_months_label": "Rub Price 12 Months",
|
||
"admin_settings_field_stars_price_1_month_label": "Stars Price 1 Month",
|
||
"admin_settings_field_stars_price_3_months_label": "Stars Price 3 Months",
|
||
"admin_settings_field_stars_price_6_months_label": "Stars Price 6 Months",
|
||
"admin_settings_field_stars_price_12_months_label": "Stars Price 12 Months",
|
||
"admin_settings_field_traffic_packages_label": "Traffic Packages",
|
||
"admin_settings_field_traffic_packages_description": "Controls the 'Traffic Packages' setting in admin overrides.",
|
||
"admin_settings_field_stars_traffic_packages_label": "Stars Traffic Packages",
|
||
"admin_settings_field_payment_methods_order_label": "Payment Methods Order",
|
||
"admin_settings_field_payment_methods_order_description": "Controls the 'Payment Methods Order' setting in admin overrides.",
|
||
"admin_settings_field_subscription_purchase_description_enabled_label": "Show subscription description",
|
||
"admin_settings_field_subscription_purchase_description_enabled_description": "Shows this text before the user chooses a purchase or renewal period.",
|
||
"admin_settings_field_subscription_purchase_description_ru_label": "Subscription description (RU)",
|
||
"admin_settings_field_subscription_purchase_description_ru_description": "Russian text shown during checkout.",
|
||
"admin_settings_field_subscription_purchase_description_en_label": "Subscription description (EN)",
|
||
"admin_settings_field_subscription_purchase_description_en_description": "English text shown during checkout.",
|
||
"admin_settings_field_stars_enabled_label": "Stars Enabled",
|
||
"admin_settings_field_yookassa_enabled_label": "YooKassa Enabled",
|
||
"admin_settings_field_yookassa_shop_id_label": "YooKassa Shop ID",
|
||
"admin_settings_field_yookassa_secret_key_label": "YooKassa Secret Key",
|
||
"admin_settings_field_yookassa_return_url_label": "YooKassa Return URL",
|
||
"admin_settings_field_yookassa_default_receipt_email_label": "YooKassa Default Receipt Email",
|
||
"admin_settings_field_yookassa_vat_code_label": "YooKassa VAT Code",
|
||
"admin_settings_field_yookassa_vat_code_description": "Controls the 'YooKassa VAT Code' setting in admin overrides.",
|
||
"admin_settings_field_yookassa_autopayments_enabled_label": "YooKassa Autopayments Enabled",
|
||
"admin_settings_field_yookassa_autopayments_require_card_binding_label": "YooKassa Autopayments Require Card Binding",
|
||
"admin_settings_field_freekassa_enabled_label": "FreeKassa Enabled",
|
||
"admin_settings_field_freekassa_merchant_id_label": "FreeKassa Merchant ID",
|
||
"admin_settings_field_freekassa_first_secret_label": "FreeKassa First Secret",
|
||
"admin_settings_field_freekassa_second_secret_label": "FreeKassa Second Secret",
|
||
"admin_settings_field_freekassa_second_secret_description": "Controls the 'FreeKassa Second Secret' setting in admin overrides.",
|
||
"admin_settings_field_freekassa_api_key_label": "FreeKassa API Key",
|
||
"admin_settings_field_freekassa_payment_url_label": "FreeKassa Payment URL",
|
||
"admin_settings_field_freekassa_payment_method_id_label": "FreeKassa Payment Method ID",
|
||
"admin_settings_field_freekassa_payment_ip_label": "FreeKassa Payment Ip",
|
||
"admin_settings_field_freekassa_payment_ip_description": "Controls the 'FreeKassa Payment Ip' setting in admin overrides.",
|
||
"admin_settings_field_freekassa_trusted_ips_label": "FreeKassa Trusted Ips",
|
||
"admin_settings_field_freekassa_trusted_ips_description": "Controls the 'FreeKassa Trusted Ips' setting in admin overrides.",
|
||
"admin_settings_field_platega_enabled_label": "Platega Enabled",
|
||
"admin_settings_field_platega_base_url_label": "Platega Base URL",
|
||
"admin_settings_field_platega_merchant_id_label": "Platega Merchant ID",
|
||
"admin_settings_field_platega_secret_label": "Platega Secret",
|
||
"admin_settings_field_platega_payment_method_label": "Platega Payment Method",
|
||
"admin_settings_field_platega_sbp_enabled_label": "Platega SBP Enabled",
|
||
"admin_settings_field_platega_sbp_method_label": "Platega SBP Method",
|
||
"admin_settings_field_platega_crypto_enabled_label": "Platega Crypto Enabled",
|
||
"admin_settings_field_platega_crypto_method_label": "Platega Crypto Method",
|
||
"admin_settings_field_platega_return_url_label": "Platega Return URL",
|
||
"admin_settings_field_platega_failed_url_label": "Platega Failed URL",
|
||
"admin_settings_field_severpay_enabled_label": "SeverPay Enabled",
|
||
"admin_settings_field_severpay_mid_label": "SeverPay Mid",
|
||
"admin_settings_field_severpay_token_label": "SeverPay Token",
|
||
"admin_settings_field_severpay_base_url_label": "SeverPay Base URL",
|
||
"admin_settings_field_severpay_return_url_label": "SeverPay Return URL",
|
||
"admin_settings_field_severpay_lifetime_minutes_label": "SeverPay Lifetime Minutes",
|
||
"admin_settings_field_severpay_lifetime_minutes_description": "Controls the 'SeverPay Lifetime Minutes' setting in admin overrides.",
|
||
"admin_settings_field_cryptopay_enabled_label": "CryptoPay Enabled",
|
||
"admin_settings_field_cryptopay_token_label": "CryptoPay Token",
|
||
"admin_settings_field_cryptopay_network_label": "CryptoPay Network",
|
||
"admin_settings_field_cryptopay_network_description": "Controls the 'CryptoPay Network' setting in admin overrides.",
|
||
"admin_settings_field_cryptopay_currency_type_label": "CryptoPay Currency Type",
|
||
"admin_settings_field_cryptopay_currency_type_description": "Controls the 'CryptoPay Currency Type' setting in admin overrides.",
|
||
"admin_settings_field_cryptopay_asset_label": "CryptoPay Asset",
|
||
"admin_settings_field_wata_enabled_label": "Enabled",
|
||
"admin_settings_field_wata_api_token_label": "API token",
|
||
"admin_settings_field_wata_base_url_label": "Base URL",
|
||
"admin_settings_field_wata_return_url_label": "Return URL",
|
||
"admin_settings_field_wata_failed_url_label": "Failed URL",
|
||
"admin_settings_field_wata_payment_link_ttl_days_label": "Payment link lifetime (days)",
|
||
"admin_settings_field_wata_payment_link_ttl_days_description": "1..30; Wata defaults to 3 days and allows up to 30 days.",
|
||
"admin_settings_field_wata_webhook_verify_signature_label": "Verify webhook signature",
|
||
"admin_settings_field_wata_public_key_label": "Webhook public key",
|
||
"admin_settings_field_wata_public_key_description": "Optional. If empty, the backend fetches it from Wata.",
|
||
"admin_settings_field_wata_trusted_ips_label": "Trusted IPs",
|
||
"admin_settings_field_wata_trusted_ips_description": "Comma-separated IP addresses accepted for Wata webhooks.",
|
||
"admin_settings_field_heleket_enabled_label": "Enabled",
|
||
"admin_settings_field_heleket_merchant_id_label": "Merchant ID",
|
||
"admin_settings_field_heleket_api_key_label": "Payment API key",
|
||
"admin_settings_field_heleket_base_url_label": "Base URL",
|
||
"admin_settings_field_heleket_currency_label": "Invoice currency",
|
||
"admin_settings_field_heleket_currency_description": "Fiat or crypto code (RUB, USD, USDT).",
|
||
"admin_settings_field_heleket_to_currency_label": "Target crypto",
|
||
"admin_settings_field_heleket_to_currency_description": "Optional target cryptocurrency for conversion.",
|
||
"admin_settings_field_heleket_network_label": "Blockchain network",
|
||
"admin_settings_field_heleket_network_description": "Optional blockchain network code (tron, bsc, eth).",
|
||
"admin_settings_field_heleket_return_url_label": "Return URL",
|
||
"admin_settings_field_heleket_success_url_label": "Success URL",
|
||
"admin_settings_field_heleket_lifetime_seconds_label": "Invoice lifetime (seconds)",
|
||
"admin_settings_field_heleket_lifetime_seconds_description": "300..43200; Heleket defaults to 3600.",
|
||
"admin_settings_field_heleket_verify_webhook_signature_label": "Verify webhook signature",
|
||
"admin_settings_field_heleket_trusted_ips_label": "Trusted IPs",
|
||
"admin_settings_field_heleket_trusted_ips_description": "Comma-separated IP addresses accepted for Heleket webhooks.",
|
||
"admin_settings_field_trial_enabled_label": "Trial Enabled",
|
||
"admin_settings_field_trial_duration_days_label": "Trial Duration Days",
|
||
"admin_settings_field_trial_traffic_limit_gb_label": "Trial Traffic Limit Gb",
|
||
"admin_settings_field_trial_traffic_strategy_label": "Trial Traffic Strategy",
|
||
"admin_settings_field_referral_one_bonus_per_referee_label": "Referral One Bonus Per Referee",
|
||
"admin_settings_field_referral_welcome_bonus_days_label": "Referral Welcome Bonus Days",
|
||
"admin_settings_field_legacy_refs_label": "Legacy Refs",
|
||
"admin_settings_field_referral_bonus_days_inviter_1_month_label": "Referral Bonus Days Inviter 1 Month",
|
||
"admin_settings_field_referral_bonus_days_inviter_3_months_label": "Referral Bonus Days Inviter 3 Months",
|
||
"admin_settings_field_referral_bonus_days_inviter_6_months_label": "Referral Bonus Days Inviter 6 Months",
|
||
"admin_settings_field_referral_bonus_days_inviter_12_months_label": "Referral Bonus Days Inviter 12 Months",
|
||
"admin_settings_field_referral_bonus_days_referee_1_month_label": "Referral Bonus Days Referee 1 Month",
|
||
"admin_settings_field_referral_bonus_days_referee_3_months_label": "Referral Bonus Days Referee 3 Months",
|
||
"admin_settings_field_referral_bonus_days_referee_6_months_label": "Referral Bonus Days Referee 6 Months",
|
||
"admin_settings_field_referral_bonus_days_referee_12_months_label": "Referral Bonus Days Referee 12 Months",
|
||
"admin_settings_field_subscription_notifications_enabled_label": "Subscription Notifications Enabled",
|
||
"admin_settings_field_subscription_notify_on_expire_label": "Subscription Notify On Expire",
|
||
"admin_settings_field_subscription_notify_after_expire_label": "Subscription Notify After Expire",
|
||
"admin_settings_field_subscription_notify_days_before_label": "Subscription Notify Days Before",
|
||
"admin_settings_field_log_new_users_label": "Log New Users",
|
||
"admin_settings_field_log_payments_label": "Log Payments",
|
||
"admin_settings_field_log_promo_activations_label": "Log Promo Activations",
|
||
"admin_settings_field_log_trial_activations_label": "Log Trial Activations",
|
||
"admin_settings_field_log_suspicious_activity_label": "Log Suspicious Activity",
|
||
"admin_settings_field_log_support_label": "Log Support",
|
||
"admin_settings_field_log_level_label": "Log Level",
|
||
"admin_settings_field_log_level_description": "Controls the 'Log Level' setting in admin overrides.",
|
||
"admin_settings_field_log_chat_id_label": "Log Chat ID",
|
||
"admin_settings_field_log_thread_id_label": "Log Thread ID",
|
||
"admin_settings_field_log_support_thread_id_label": "Support thread ID",
|
||
"admin_settings_field_log_support_thread_id_description": "Log chat thread for support ticket notifications.",
|
||
"admin_settings_field_support_tickets_enabled_label": "Support tickets enabled",
|
||
"admin_settings_field_support_tickets_enabled_description": "Enable the support tickets section in the user account and allow users to create tickets.",
|
||
"admin_settings_field_support_admin_email_notifications_enabled_label": "Admin email notifications",
|
||
"admin_settings_field_support_admin_email_notifications_enabled_description": "When disabled, new tickets and user replies are sent only to Telegram and the log chat.",
|
||
"admin_settings_field_support_admin_notification_cooldown_seconds_label": "Telegram notification cooldown",
|
||
"admin_settings_field_support_admin_notification_cooldown_seconds_description": "Minimum seconds between repeated Telegram/log notifications for the same unread ticket.",
|
||
"admin_settings_field_support_admin_email_cooldown_seconds_label": "Email notification cooldown",
|
||
"admin_settings_field_support_admin_email_cooldown_seconds_description": "Minimum seconds between repeated email notifications for the same unread ticket.",
|
||
"admin_settings_field_support_ticket_max_body_length_label": "Max message length",
|
||
"admin_settings_field_support_ticket_max_body_length_description": "Maximum number of characters in a ticket message.",
|
||
"admin_settings_field_support_ticket_max_subject_length_label": "Max subject length",
|
||
"admin_settings_field_support_ticket_max_subject_length_description": "Maximum number of characters in a ticket subject.",
|
||
"admin_settings_field_support_ticket_rate_limit_per_hour_label": "Ticket limit per hour",
|
||
"admin_settings_field_support_ticket_rate_limit_per_hour_description": "How many new tickets a user can create per hour. 0 means unlimited.",
|
||
"admin_settings_field_my_devices_section_enabled_label": "My Devices Section Enabled",
|
||
"admin_settings_field_user_hwid_device_limit_label": "User HWID Device Limit",
|
||
"admin_settings_field_user_traffic_limit_gb_label": "User Traffic Limit Gb",
|
||
"admin_settings_field_user_traffic_strategy_label": "User Traffic Strategy",
|
||
"wa_auth_checking_password": "Checking password...",
|
||
"wa_auth_password_required": "Enter your password",
|
||
"wa_auth_password_login_failed": "Could not sign in with this email and password. You can use an email code instead.",
|
||
"wa_password_placeholder": "Password",
|
||
"wa_login_password_submit": "Sign in",
|
||
"wa_login_use_password": "Use password",
|
||
"wa_login_use_email_code": "Use email code",
|
||
"wa_settings_set_password_action": "Set password",
|
||
"wa_settings_change_password_action": "Change password",
|
||
"wa_password_modal_title": "Email password",
|
||
"wa_password_modal_desc": "Enter the new password twice. Then we will send a code to your linked email.",
|
||
"wa_password_modal_code_desc": "Enter the email code to confirm the password.",
|
||
"wa_password_new_placeholder": "New password",
|
||
"wa_password_confirm_placeholder": "Repeat password",
|
||
"wa_password_send_code_action": "Get code",
|
||
"wa_password_confirm_action": "Save password",
|
||
"wa_password_too_short": "Password must be at least 8 characters",
|
||
"wa_password_too_long": "Password must be at most 128 characters",
|
||
"wa_password_mismatch": "Passwords do not match",
|
||
"wa_password_code_send_failed": "Could not send the code",
|
||
"wa_password_set_failed": "Could not save password",
|
||
"wa_password_set_success": "Password saved",
|
||
"wa_nav_support": "Support",
|
||
"wa_support_title": "Support",
|
||
"wa_support_subtitle": "Tickets and replies from the team",
|
||
"wa_support_new_ticket": "New request",
|
||
"wa_support_contact_support": "Contact support",
|
||
"wa_support_subject": "Subject",
|
||
"wa_support_subject_placeholder": "Briefly describe the issue",
|
||
"wa_support_category": "Category",
|
||
"wa_support_priority": "Priority",
|
||
"wa_support_message": "Message",
|
||
"wa_support_message_placeholder": "Tell us what happened. More details help us respond faster.",
|
||
"wa_support_create": "Create ticket",
|
||
"wa_support_creating": "Creating...",
|
||
"wa_support_empty": "No tickets yet",
|
||
"wa_support_no_open_tickets": "No open requests",
|
||
"wa_support_empty_hint": "Create a new request if you need help with billing, connection, or your account.",
|
||
"wa_support_not_found": "Ticket not found",
|
||
"wa_support_send": "Send",
|
||
"wa_support_reply_placeholder": "Write a reply",
|
||
"wa_support_closed_hint": "This ticket is closed",
|
||
"wa_support_create_failed": "Could not create ticket",
|
||
"wa_support_send_failed": "Could not send reply",
|
||
"wa_support_filter_all": "All",
|
||
"wa_support_filter_active": "Active",
|
||
"wa_support_filter_label": "Ticket filter",
|
||
"wa_support_ticket_number": "Ticket #{id}",
|
||
"wa_support_no_messages": "No messages yet",
|
||
"wa_support_role_user": "You",
|
||
"wa_support_role_admin": "Support",
|
||
"wa_support_role_system": "System",
|
||
"wa_support_internal_note": "Internal note",
|
||
"wa_support_open_ticket": "Open ticket",
|
||
"wa_support_open_ticket_hint": "Open the ticket in Mini App.",
|
||
"wa_support_category_billing": "Billing",
|
||
"wa_support_category_technical": "Technical",
|
||
"wa_support_category_account": "Account",
|
||
"wa_support_category_other": "Other",
|
||
"wa_support_priority_low": "Low",
|
||
"wa_support_priority_normal": "Normal",
|
||
"wa_support_priority_high": "High",
|
||
"wa_support_priority_urgent": "Urgent",
|
||
"wa_support_status_open": "Open",
|
||
"wa_support_status_awaiting_user": "Awaiting user",
|
||
"wa_support_status_awaiting_admin": "Awaiting admin",
|
||
"wa_support_status_resolved": "Resolved",
|
||
"wa_support_status_closed": "Closed",
|
||
"admin_nav_support": "Support",
|
||
"admin_section_support_title": "Support",
|
||
"admin_section_support_subtitle": "Ticket inbox and user replies",
|
||
"admin_support_search": "Search",
|
||
"admin_support_empty": "No tickets yet",
|
||
"admin_support_select_ticket": "Select a ticket",
|
||
"admin_support_close_ticket": "Close",
|
||
"admin_support_internal_note": "Internal note",
|
||
"admin_support_reply_placeholder": "Reply",
|
||
"admin_support_no_messages": "No messages yet",
|
||
"admin_support_filter_all": "All",
|
||
"admin_support_filter_active": "Active",
|
||
"admin_support_filter_closed": "Closed",
|
||
"admin_support_filter_all_priorities": "Any priority",
|
||
"admin_support_filter_all_categories": "All categories",
|
||
"admin_support_ticket_number": "Ticket #{id}",
|
||
"admin_support_priority": "Priority",
|
||
"admin_support_category": "Category",
|
||
"admin_support_role_user": "User",
|
||
"admin_support_role_admin": "Admin",
|
||
"admin_support_role_system": "System",
|
||
"admin_support_user_context": "User",
|
||
"admin_support_open_user": "User card",
|
||
"admin_support_tariff": "Tariff",
|
||
"admin_support_status": "Status",
|
||
"admin_support_remaining": "Remaining",
|
||
"admin_support_unread": "Unread",
|
||
"admin_support_summary": "Support summary",
|
||
"admin_support_ticket_dialog": "Support conversation",
|
||
"admin_support_status_open": "Open",
|
||
"admin_support_status_awaiting_user": "Awaiting user",
|
||
"admin_support_status_awaiting_admin": "Awaiting admin",
|
||
"admin_support_status_resolved": "Resolved",
|
||
"admin_support_status_closed": "Closed",
|
||
"admin_support_priority_low": "Low",
|
||
"admin_support_priority_normal": "Normal",
|
||
"admin_support_priority_high": "High",
|
||
"admin_support_priority_urgent": "Urgent",
|
||
"admin_support_category_billing": "Billing",
|
||
"admin_support_category_technical": "Technical",
|
||
"admin_support_category_account": "Account",
|
||
"admin_support_category_other": "Other",
|
||
"admin_support_sort_importance_desc": "Most important",
|
||
"admin_sort_updated_desc": "Newest activity",
|
||
"admin_sort_updated_asc": "Oldest activity",
|
||
"admin_sort_created_desc": "Newest created",
|
||
"admin_sort_created_asc": "Oldest created",
|
||
"wa_install_title": "Install and configure",
|
||
"wa_install_subtitle": "Choose your platform and app.",
|
||
"wa_install_platform": "Platform",
|
||
"wa_install_app": "App",
|
||
"wa_install_loading": "Loading instructions...",
|
||
"wa_install_unavailable": "Instructions are unavailable.",
|
||
"wa_install_featured": "Recommended",
|
||
"wa_install_subscription_link": "Subscription link",
|
||
"wa_install_subscription_link_hint": "Scan the QR code or copy the link.",
|
||
"wa_install_qr_alt": "Subscription QR code",
|
||
"wa_install_copy_subscription_link": "Copy link",
|
||
"wa_install_link_copied": "Link copied",
|
||
"wa_install_share": "Share",
|
||
"wa_install_share_copied": "Install guide link copied",
|
||
"admin_settings_section_subscription_guides": "Install guides",
|
||
"admin_settings_field_subscription_guides_enabled_label": "Embedded install guides",
|
||
"admin_settings_field_subscription_guides_enabled_description": "Open install instructions inside the Web App instead of an external connect page.",
|
||
"admin_settings_field_subscription_guides_bot_menu_enabled_label": "Open install guides from bot",
|
||
"admin_settings_field_subscription_guides_bot_menu_enabled_description": "Use the Telegram Mini App install screen for bot connect buttons and show public install guide links.",
|
||
"admin_settings_field_subscription_page_config_panel_enabled_label": "Use Remnawave Panel config",
|
||
"admin_settings_field_subscription_page_config_panel_enabled_description": "Fetch Subscription Page config from Remnawave Panel by the user's subscription short UUID.",
|
||
"admin_settings_field_subscription_page_config_json_override_enabled_label": "Enable admin JSON override",
|
||
"admin_settings_field_subscription_page_config_json_override_enabled_description": "Use the JSON field below instead of Remnawave Panel config. Disabled by default.",
|
||
"admin_settings_field_subscription_page_config_path_label": "Subscription Page config path",
|
||
"admin_settings_field_subscription_page_config_path_description": "Fallback path to a Remnawave Subscription Page v1 JSON config file.",
|
||
"admin_settings_field_subscription_page_config_path_placeholder": "data/subpage-config/multiapp.json",
|
||
"admin_settings_field_subscription_page_config_json_label": "Subscription Page config JSON",
|
||
"admin_settings_field_subscription_page_config_json_description": "Optional admin JSON override. It is applied only when the JSON override switch is enabled.",
|
||
"admin_settings_field_subscription_page_config_json_placeholder": "{\n \"version\": \"1\"\n}",
|
||
"admin_settings_json_upload": "Load .json"
|
||
}
|