188 lines
13 KiB
JSON
188 lines
13 KiB
JSON
{
|
||
"welcome": "Welcome, {user_name}!",
|
||
"choose_language": "Please choose your language:",
|
||
"language_set": "Language set to <b>English</b>.",
|
||
"language_set_alert": "Language updated!",
|
||
"main_menu_greeting": "Hello, {user_name}!\nWhat would you like to do?",
|
||
"error_service_unavailable": "⚠️ Service unavailable. Please try again later.",
|
||
"error_occurred_processing_request": "⚠️ An error occurred. Please try again.",
|
||
"unknown_command_private": "Sorry, command not understood. Use /start.",
|
||
"error_try_again": "An error occurred. Please try again.",
|
||
|
||
"menu_subscribe_inline": "🚀 Buy",
|
||
"menu_my_subscription_inline": "📄 My Sub/Config",
|
||
"menu_referral_inline": "🎁 Referrals",
|
||
"menu_apply_promo_button": "🎁 Promo Code",
|
||
"menu_activate_trial_button": "🆓 Activate Trial",
|
||
"menu_language_settings_inline": "🌐 Language",
|
||
"menu_server_status_button": "📊 Status",
|
||
"menu_support_button": "💬 Support",
|
||
"back_to_main_menu_button": "⬅️ Main Menu",
|
||
|
||
"no_subscription_options_available": "Subscription options are currently unavailable.",
|
||
"select_subscription_period": "Select subscription period:",
|
||
"subscribe_for_months_button": "{months}mo - {price} {currency_symbol}",
|
||
"confirm_subscription_prompt": "Subscribe for <b>{months} months</b> for <b>{price} {currency_symbol}</b>?\n\nConfirm payment?",
|
||
"confirm_payment_button": "✅ Confirm ({price} {currency_symbol})",
|
||
"cancel_button": "❌ Cancel",
|
||
"payment_service_unavailable": "⚠️ Payment service unavailable. Try later.",
|
||
"error_creating_payment_record": "⚠️ Error preparing payment. Try again.",
|
||
"payment_link_message": "To complete your {months} months subscription, please click the button below:",
|
||
"pay_button": "💳 Pay Now",
|
||
"error_payment_gateway": "⚠️ Payment gateway error. Try again or contact support.",
|
||
"payment_successful": "✅ Payment successful! Your <b>{months} months</b> subscription is active until <b>{end_date}</b>.",
|
||
"payment_failed": "❌ Payment failed/cancelled. If debited, contact support.",
|
||
"payment_description_subscription": "{months}-Month Subscription",
|
||
"my_subscription_details": "ℹ️ <b>Your Subscription</b>\n\n🗓️ Ends: <b>{end_date}</b> (Days left: {days_left})\n\n🔗 Link: <code>{config_link}</code>\n\n📊 Traffic: {traffic_used} / {traffic_limit}\n💡 Panel: {status}",
|
||
"subscription_not_active": "No active subscription. Subscribe now!",
|
||
"config_link_not_available": "N/A (Try /sync or contact support)",
|
||
"traffic_unlimited": "Unlimited",
|
||
"traffic_na": "N/A",
|
||
"status_active": "Active",
|
||
"status_expired": "Expired",
|
||
"status_disabled": "Disabled",
|
||
"status_limited": "Limited",
|
||
"status_unknown": "Unknown",
|
||
"subscription_ending_soon_notification": "Dear {user_name},\nYour subscription ends on <b>{end_date}</b> ({days_left} days left).\nRenew to continue service!",
|
||
"payment_successful_with_referral_bonus": "✅ Payment for <b>{months} months</b> successful! Initial end: {base_end_date}.\n\n🎉 Invited by {inviter_name}, you got <b>{bonus_days} bonus days</b>!\nFinal end date: <b>{final_end_date}</b>.",
|
||
"payment_successful_error_details": "Payment successful, but error displaying details. Check 'My Subscription'.",
|
||
"error_processing_your_payment": "Error processing your payment. Please contact support.",
|
||
|
||
"trial_confirm_prompt": "Activate a <b>{days}-day free trial</b> with <b>{traffic_gb} GB</b> traffic?\n\n<i>This can only be done once and is not available if you've had a subscription before.</i>",
|
||
"trial_confirm_activate_button": "✅ Activate!",
|
||
"trial_already_had_subscription_or_trial": "A trial period is only available if you haven't had any subscription (including a trial) before.",
|
||
"trial_activation_failed": "⚠️ Sorry, we couldn't activate your free trial at this time. Please contact support.",
|
||
"trial_feature_disabled": "Trial periods are currently not available.",
|
||
"trial_cancelled": "Trial activation cancelled.",
|
||
"trial_activated_alert": "✅ Free trial activated!",
|
||
"trial_activated_details_message": "🎉 Your <b>{days}-day free trial</b> is now active!\nIt's valid until: <b>{end_date}</b>.\nConfig link: <code>{config_link}</code>\nTraffic: <b>{traffic_gb}</b>\nEnjoy!",
|
||
|
||
"referral_program_info_new": "Invite friends, get bonus days!\n\nYour referral link:\n<code>{referral_link}</code>\n\n<b>Bonuses:</b>{bonus_details}",
|
||
"referral_bonus_per_period": "\n\n🎁 Friend's {months}-mo sub:\n ➢ You get: <b>{inviter_bonus_days} days</b>\n ➢ Friend gets: <b>{referee_bonus_days} days</b>",
|
||
"no_bonus_days": "0",
|
||
"referral_no_bonuses_configured": "\nReferral bonus details not set.",
|
||
"referral_link_for_copying_reminder": "Link above. Tap & hold to copy!",
|
||
"referral_bonus_inviter_notification_extended": "🎉 Hooray, {referee_name} (referred by you) has subscribed!\nYou've received <b>{days} bonus days</b> to your subscription.\nYour subscription now ends on: <b>{new_end_date}</b>.",
|
||
"friend_placeholder": "a friend",
|
||
|
||
"error_user_not_synced_for_config": "Account not fully synced. Try /sync or contact support.",
|
||
"error_fetching_config_link_details": "Error fetching config link details. Try again or contact support.",
|
||
"error_fetching_config_link_details_no_uuid": "Config link ID not found. Contact support.",
|
||
"error_generating_config_link": "Could not generate config link. Try later.",
|
||
|
||
"promo_code_prompt": "Enter your promo code:",
|
||
"promo_code_invalid_or_expired": "❌ Invalid, expired, or already used promo code.",
|
||
"promo_code_no_active_subscription": "❌ Active subscription required to apply this promo code.",
|
||
"promo_code_applied_success": "✅ Promo '<code>{code}</code>' applied! <b>{bonus_days} bonus days</b> added.\nNew end date: <b>{new_end_date}</b>.",
|
||
"promo_code_max_activations_reached": "❌ Promo '<code>{code}</code>' max activations reached.",
|
||
"promo_code_not_found": "❌ Promo code '<code>{code}</code>' not found.",
|
||
"error_applying_promo_bonus": "⚠️ Error applying promo bonus. Try again or contact support.",
|
||
"promo_input_cancelled_no_message": "Promo code input cancelled.",
|
||
|
||
"user_is_banned": "⚠️ Access restricted. Contact support if this is an error.",
|
||
"contact_support_button": "💬 Support",
|
||
"suspicious_input_ban_message": "⚠️ Suspicious input detected. For security reasons, your access to this bot has been restricted. Please contact support.",
|
||
|
||
"admin_panel_title": "👑 Admin Panel",
|
||
"admin_panel_button_reply": "👑 Admin Panel",
|
||
"back_to_admin_panel_button": "⬅️ Admin Panel",
|
||
"admin_unknown_action": "Unknown admin action.",
|
||
"admin_action_cancelled_default": "Action cancelled.",
|
||
"prev_page_button": "Prev",
|
||
"next_page_button": "Next",
|
||
"yes_button": "✅ Yes",
|
||
"no_button": "❌ No",
|
||
|
||
"admin_ban_user_button": "🚫 Ban",
|
||
"admin_unban_user_button": "✅ Unban",
|
||
"admin_view_banned_users_button": "📜 Banned List",
|
||
"admin_ban_user_prompt": "Enter User ID or @username to ban:",
|
||
"admin_unban_user_prompt": "Enter User ID or @username to unban:",
|
||
"admin_invalid_user_id_format": "Invalid User ID. Must be a number.",
|
||
"admin_invalid_username_format": "Invalid username. Format: @username (5-32 chars: letters, numbers, underscores).",
|
||
"admin_user_not_found_by_username": "User with username @{username} not found in bot records.",
|
||
"admin_cannot_ban_self_or_admin": "Cannot ban yourself or the main admin.",
|
||
"admin_user_not_found_in_bot_db": "User ID {user_id} not found in bot.",
|
||
"admin_user_banned_success_panel_too": "✅ User {user_id_or_username} banned (local & panel).",
|
||
"admin_user_banned_local_panel_fail": "⚠️ User {user_id_or_username} banned locally, panel update failed.",
|
||
"admin_user_banned_local_no_panel_uuid": "✅ User {user_id_or_username} banned locally (no panel ID found).",
|
||
"admin_user_unbanned_success_panel_too": "✅ User {user_id_or_username} unbanned (local & panel).",
|
||
"admin_user_unbanned_local_panel_fail": "⚠️ User {user_id_or_username} unbanned locally, panel update failed.",
|
||
"admin_user_unbanned_local_no_panel_uuid": "✅ User {user_id_or_username} unbanned locally (no panel ID found).",
|
||
"admin_user_already_banned": "User {user_id_or_username} is already banned.",
|
||
"admin_user_not_banned": "User {user_id_or_username} is not currently banned.",
|
||
"admin_confirm_unban_prompt": "Are you sure you want to unban user {user_display} (ID: <code>{user_id}</code>)?",
|
||
"admin_confirm_ban_prompt": "Are you sure you want to ban user {user_display} (ID: <code>{user_id}</code>)?",
|
||
"admin_user_unbanned_from_card": "✅ User {user_display} (ID: {user_id}) has been unbanned.",
|
||
"admin_user_banned_from_card": "✅ User {user_display} (ID: {user_id}) has been banned.",
|
||
"admin_banned_list_title": "🚫 Banned Users List (Page {current_page}/{total_pages})",
|
||
"admin_no_banned_users": "No users are currently banned.",
|
||
"admin_user_card_title": "👤 User Card: {user_display}",
|
||
"user_card_info": "<b>TG ID:</b> <code>{user_id}</code>\n<b>Username:</b> @{username}\n<b>Name:</b> {first_name} {last_name}\n<b>Language:</b> {language_code}\n<b>Panel UUID:</b> <code>{panel_user_uuid}</code>\n<b>Status:</b> {ban_status}\n<b>Registered:</b> {reg_date}\n<b>Subscription Ends:</b> {sub_end_date}",
|
||
"user_card_banned": "🔴 BANNED",
|
||
"user_card_active": "🟢 Active",
|
||
"user_card_sub_na": "N/A",
|
||
"user_card_unban_button": "✅ Unban This User",
|
||
"user_card_ban_button": "🚫 Ban This User",
|
||
"user_card_back_to_banned_list_button": "⬅️ Banned List",
|
||
|
||
"admin_broadcast_button": "📢 Broadcast",
|
||
"admin_broadcast_enter_message": "Enter broadcast message (HTML supported):",
|
||
"admin_broadcast_confirm_prompt": "Preview:\n\n---\n{message_preview}\n---\n\nSend to all users?",
|
||
"confirm_broadcast_send_button": "✅ Send",
|
||
"cancel_broadcast_button": "❌ Cancel",
|
||
"admin_broadcast_sending_started": "Broadcast started...",
|
||
"admin_broadcast_error_no_message": "Error: No message to broadcast.",
|
||
"admin_broadcast_finished_stats": "📢 Broadcast finished.\nSent: {sent_count}\nFailed: {failed_count}",
|
||
"admin_broadcast_cancelled": "Broadcast cancelled.",
|
||
|
||
"admin_create_promo_button": "🎁 New Promo",
|
||
"admin_view_promos_button": "📜 Promos",
|
||
"admin_promo_create_prompt": "Promo: <code>CODE DAYS MAX_USES [VALID_DAYS]</code>\nEx: <code>SALE24 7 100 30</code> (30d validity)\nEx: <code>NEWBIE 5 500</code> (no expiry)",
|
||
"admin_promo_invalid_format": "Invalid format. Use: <code>CODE DAYS USES [VALIDITY]</code>",
|
||
"admin_promo_invalid_values": "Invalid values. Days/uses must be positive. Error: {error}",
|
||
"admin_promo_created_success": "✅ Promo '<code>{code}</code>': {bonus_days}d, {max_activations} uses, {valid_until_str}.",
|
||
"admin_promo_valid_until_display": "Valid until: {date}",
|
||
"admin_promo_valid_indefinitely": "No expiry",
|
||
"admin_promo_creation_failed": "❌ Promo creation failed (exists or DB error).",
|
||
"admin_no_active_promos": "No active promo codes.",
|
||
"admin_active_promos_list_header": "📜 Active Promos:",
|
||
"admin_promo_list_item": "- <code>{code}</code>: {bonus} days, {current}/{max} used, Valid: {valid_until}",
|
||
|
||
"admin_stats_button": "📊 Stats",
|
||
"admin_stats_header": "📊 <b>Bot Statistics:</b>",
|
||
"admin_stats_users": "\n👥 <b>Users:</b>\n Total: {total_users}\n Banned: {banned_users}\n Active Subs (Bot): {active_subs}",
|
||
"admin_stats_recent_payments_header": "\n💳 <b>Recent Payments (Bot DB):</b>",
|
||
"admin_stats_payment_item": " {status_emoji} {amount} {currency} by {user_info} ({p_status}) on {p_date}",
|
||
"admin_stats_no_payments_found": "\nNo payment records in bot DB.",
|
||
"admin_stats_last_sync_header": "\n🔄 <b>Last Panel Sync:</b>",
|
||
"admin_stats_sync_time": "Time",
|
||
"admin_stats_sync_status": "Status",
|
||
"admin_stats_sync_users_processed": "Panel Users Processed",
|
||
"admin_stats_sync_subs_synced": "Subs Synced",
|
||
"admin_stats_sync_details_label": "Details",
|
||
"admin_sync_status_never_run": "No sync performed yet.",
|
||
|
||
"admin_view_logs_menu_button": "📜 View Logs",
|
||
"admin_logs_menu_title": "📜 User Activity Logs",
|
||
"admin_view_all_logs_button": "All Logs",
|
||
"admin_view_user_logs_prompt_button": "Logs by User",
|
||
"admin_prompt_for_user_id_or_username_logs": "Enter User ID or @username for logs:",
|
||
"admin_all_logs_title": "📜 All Activity (Page {current_page}/{total_pages})",
|
||
"admin_user_logs_title": "📜 Activity for {user_display} (Page {current_page}/{total_pages})",
|
||
"admin_no_logs_found": "No logs found matching your criteria.",
|
||
"admin_log_entry_format": "[{timestamp_str}] <b>User:</b> {user_display} (ID: {user_id})\n<b>Type:</b> {event_type}\n<b>Content:</b> <code>{content_preview}</code>",
|
||
"admin_log_user_not_found": "User '{input}' not found for log viewing.",
|
||
"system_or_unknown_user": "System/Unknown",
|
||
|
||
"admin_sync_panel_button": "🔄 Sync Panel",
|
||
"sync_started": "Panel synchronization started...",
|
||
"sync_completed": "Panel synchronization completed.\nStatus: {status}\nDetails: {details}",
|
||
"sync_failed": "Panel synchronization failed.\nDetails: {details}",
|
||
"admin_sync_initiated_from_panel": "Panel sync initiated!",
|
||
"error_cannot_initiate_sync_no_message": "Error: Cannot initiate sync without message context.",
|
||
|
||
"admin_suspicious_promo_attempt_notification": "⚠️ <b>Suspicious Promo Code Input!</b> ⚠️\n\n<b>User:</b> {user_first_name} (@{user_username}, ID: <code>{user_id}</code>)\n<b>Input:</b> <pre>{promo_code_input}</pre>",
|
||
"admin_suspicious_promo_attempt_notification_no_username": "⚠️ <b>Suspicious Promo Code Input!</b> ⚠️\n\n<b>User:</b> {user_first_name} (ID: <code>{user_id}</code>)\n<b>Input:</b> <pre>{promo_code_input}</pre>"
|
||
}
|