- Introduced a unified promo code management system, allowing admins to view and manage both active and inactive promo codes with detailed information. - Updated the promo code detail view to include status indicators and management options for editing, toggling status, and viewing activation history. - Enhanced user statistics display by restructuring the information layout and adding new labels for clarity. - Improved localization files to support new messages and labels related to promo code management and user statistics. - Implemented error handling for suspicious promo code attempts, integrating a notification system for better admin awareness.
470 lines
46 KiB
JSON
470 lines
46 KiB
JSON
{
|
||
"welcome": "Добро пожаловать, {user_name}!",
|
||
"main_menu_greeting": "Привет, {user_name}! 👋\nЧто бы вы хотели сделать?",
|
||
|
||
"menu_activate_trial_button": "🆓 Пробный период",
|
||
"menu_subscribe_inline": "🚀 Купить",
|
||
"menu_my_subscription_inline": "🔐 Моя подписка",
|
||
"menu_referral_inline": "🎁 Рефералы",
|
||
"menu_apply_promo_button": "🎟 Промокод",
|
||
"menu_language_settings_inline": "🌐 Язык",
|
||
"menu_server_status_button": "📊 Статус",
|
||
"menu_support_button": "💬 Поддержка",
|
||
"menu_terms_button": "📄 Условия сервиса",
|
||
"back_to_main_menu_button": "⬅️ Назад",
|
||
|
||
"choose_language": "Выберите язык / Select language:",
|
||
"language_set_alert": "Язык изменен!",
|
||
"error_occurred_try_again": "Произошла ошибка, попробуйте снова.",
|
||
"error_displaying_menu": "Ошибка отображения меню.",
|
||
"main_menu_unknown_action": "Неизвестное действие.",
|
||
|
||
"select_subscription_period": "Выберите срок подписки:",
|
||
"no_subscription_options_available": "В данный момент нет доступных вариантов подписки.",
|
||
"subscribe_for_months_button": "{months} мес. - {price} {currency_symbol}",
|
||
"choose_payment_method": "Выберите способ оплаты:",
|
||
"pay_button": "💳 Оплатить",
|
||
"pay_with_yookassa_button": "💳 ЮKassa",
|
||
"pay_with_cryptopay_button": "💎 CryptoBot",
|
||
"pay_with_tribute_button": "❤️ Tribute",
|
||
"pay_with_stars_button": "🌟 Звезды Telegram",
|
||
"connect_button": "🔗 Подключиться",
|
||
"cancel_button": "❌ Отмена",
|
||
"payment_description_subscription": "Оплата подписки на {months} мес.",
|
||
"payment_service_unavailable": "Платежный сервис временно недоступен. Пожалуйста, попробуйте позже.",
|
||
"payment_service_unavailable_alert": "Платежный сервис недоступен",
|
||
"error_creating_payment_record": "Ошибка при создании записи о платеже. Попробуйте позже.",
|
||
"error_payment_gateway_link_failed": "Не удалось получить ссылку на оплату. Пожалуйста, свяжитесь с поддержкой.",
|
||
"payment_link_message": "Для оплаты подписки на {months} мес., нажмите кнопку ниже:",
|
||
"error_payment_gateway": "Ошибка платежного шлюза. Попробуйте позже или свяжитесь с поддержкой.",
|
||
"payment_successful_error_details": "✅ Оплата прошла успешно, но возникла ошибка при отображении деталей. Ваша подписка активна. Свяжитесь с поддержкой, если что-то не так.",
|
||
"payment_successful_full": "✅ Оплата прошла успешно!\nВаша подписка на {months} мес. активна до {end_date}.\n\nКлюч подключения:\n<code>{config_link}</code>\n\nЧтобы подключиться, перейдите по ссылке и следуйте инструкции 👇",
|
||
"payment_successful_with_promo_full": "✅ Оплата прошла успешно!\nВаша подписка на {months} мес. (с учетом промокода на +{bonus_days} дней) активна до {end_date}.\n\nКлюч подключения:\n<code>{config_link}</code>\n\nЧтобы подключиться, перейдите по ссылке и следуйте инструкции 👇",
|
||
"payment_successful_with_referral_bonus_full": "✅ Оплата прошла успешно!\nВаша подписка на {months} мес. (базовая дата окончания: {base_end_date}) продлена на {bonus_days} бонусных дней за приглашение от {inviter_name} и теперь активна до {final_end_date}.\n\nКлюч подключения:\n<code>{config_link}</code>\n\nЧтобы подключиться, перейдите по ссылке и следуйте инструкции 👇",
|
||
"payment_failed": "❌ Оплата не удалась или была отменена. Пожалуйста, попробуйте еще раз или свяжитесь с поддержкой.",
|
||
"error_processing_your_payment": "Произошла ошибка при обработке вашего платежа после его успеха. Пожалуйста, свяжитесь с поддержкой, указав детали.",
|
||
|
||
"my_subscription_details": "<b>🔐 Моя подписка:</b>\n\nСтатус: <b>{status}</b>\nАктивна до: <b>{end_date}</b> (осталось дней: {days_left})\n\nТрафик: <b>{traffic_used}</b> из <b>{traffic_limit}</b>\n\nСсылка на конфигурацию:\n<code>{config_link}</code>",
|
||
"config_link_not_available": "недоступна, обратитесь в поддержку",
|
||
"subscription_not_active": "У вас нет активной подписки. \nХотите приобрести?",
|
||
"status_active": "Активна",
|
||
"status_expired": "Истекла",
|
||
"status_disabled": "Отключена",
|
||
"traffic_unlimited": "Безлимитный",
|
||
"traffic_na": "н/д",
|
||
"error_service_unavailable": "Сервис временно недоступен. Пожалуйста, попробуйте позже.",
|
||
|
||
"promo_code_prompt": "Пожалуйста, введите ваш промокод:",
|
||
"promo_code_not_found": "Промокод <code>{code}</code> не найден, истек или уже использован максимальное количество раз.",
|
||
"promo_code_already_used_by_user": "Вы уже активировали промокод <code>{code}</code>.",
|
||
"promo_code_no_active_subscription": "Для активации этого промокода у вас должна быть активная подписка.",
|
||
"promo_code_applied_success_full": "✅ Промокод успешно применен!\nПодписка активна до {end_date}.\n\nКлюч подключения:\n<code>{config_link}</code>\n\nЧтобы подключиться, перейдите по ссылке и следуйте инструкции 👇",
|
||
"error_applying_promo_bonus": "Не удалось применить бонус по промокоду. Пожалуйста, попробуйте позже или свяжитесь с поддержкой.",
|
||
"promo_input_cancelled_short": "Ввод промокода отменен.",
|
||
|
||
"trial_feature_disabled": "Пробный период в данный момент недоступен.",
|
||
"trial_already_had_subscription_or_trial": "Вы уже использовали пробный период или у вас была платная подписка. Пробный период доступен только один раз для новых пользователей.",
|
||
"trial_confirm_prompt": "Хотите активировать бесплатный пробный период на {days} дней с лимитом трафика {traffic_gb}?",
|
||
"trial_confirm_activate_button": "✅ Активировать!",
|
||
"trial_activated_alert": "Пробный период активирован!",
|
||
"trial_activated_details_message": "🚀 Ваш пробный период на {days} дней активирован!\n\nДействует до: <b>{end_date}</b>\nТрафик: <b>{traffic_gb}</b>\n\nВаша ссылка на конфигурацию:\n<code>{config_link}</code>",
|
||
"trial_activation_failed": "Не удалось активировать пробный период. Пожалуйста, попробуйте позже.",
|
||
"trial_activation_failed_panel_link": "Не удалось связать ваш аккаунт с сервером для активации пробного периода. Попробуйте позже.",
|
||
"trial_activation_failed_db": "Ошибка базы данных при активации пробного периода. Попробуйте позже.",
|
||
"trial_activation_failed_panel_update": "Не удалось обновить детали на сервере для пробного периода. Попробуйте позже.",
|
||
"user_not_found_for_trial": "Ваш аккаунт не найден в системе. Пожалуйста, сначала выполните команду /start.",
|
||
"yes_button": "Да",
|
||
"no_button": "Нет",
|
||
"trial_cancelled_short": "Активация отменена.",
|
||
|
||
"referral_program_info_new": "Приглашайте друзей и получайте бонусы!\n\nВаша реф. ссылка:\n<code>{referral_link}</code>\n\n<b>Бонусы:</b>{bonus_details}",
|
||
"referral_bonus_per_period": "\n\n🎁 За {months}-мес. подписку друга:\n ➢ Вы: <b>{inviter_bonus_days} дн.</b>\n ➢ Друг: <b>{referee_bonus_days} дн.</b>",
|
||
"no_bonus_days": "0",
|
||
"referral_no_bonuses_configured": "\nРеферальные бонусы не настроены.",
|
||
"referral_link_for_copying_reminder": "Ссылка выше. Нажмите и удерживайте для копирования.",
|
||
"referral_share_message_button": "📩 Сообщение для друга",
|
||
"referral_friend_message": "🚀 Привет! Попробуй этот VPN - быстрый, надёжный и доступный!\n\n🎁 По моей ссылке тебе дадут бонусные дни к подписке!\n\n{referral_link}",
|
||
"friend_placeholder": "друг",
|
||
"referral_bonus_inviter_notification_extended": "🎉 Поздравляем! Ваш друг {referee_name} оплатил подписку. Вам начислено {days} бонусных дней! Ваша подписка теперь активна до {new_end_date}.",
|
||
"referral_bonus_inviter_notification_new_sub": "🎉 Поздравляем! Ваш друг {referee_name} оплатил подписку. Вам начислена бонусная подписка на {days} дней! Она активна до {new_end_date}.",
|
||
|
||
"user_is_banned": "🚫 Ваш аккаунт заблокирован. Пожалуйста, свяжитесь со службой поддержки.",
|
||
|
||
"admin_panel_title": "Панель администратора",
|
||
"admin_stats_button": "📊 Статистика",
|
||
"admin_broadcast_button": "📢 Рассылка",
|
||
"admin_create_promo_button": "🎁 Создать промо",
|
||
"admin_create_bulk_promo_button": "📦 Массовое создание",
|
||
"admin_manage_promos_button": "🛠 Управление промо",
|
||
"admin_view_promos_button": "👀 Список промо",
|
||
"admin_ban_user_button": "🚫 Забанить",
|
||
"admin_unban_user_button": "✅ Разбанить",
|
||
"admin_view_banned_users_button": "📜 Бан-лист",
|
||
"admin_view_logs_menu_button": "📄 Логи",
|
||
"admin_sync_panel_button": "🔄 Синхронизация",
|
||
"admin_unknown_action": "Неизвестное действие администратора.",
|
||
|
||
"admin_stats_and_monitoring_section": "📊 Статистика и мониторинг",
|
||
"admin_user_management_section": "👥 Управление пользователями",
|
||
"admin_promo_marketing_section": "🎁 Промокоды и маркетинг",
|
||
"admin_system_functions_section": "⚙️ Системные функции",
|
||
"admin_ban_management_section": "🚫 Управление блокировками",
|
||
"admin_users_management_button": "👤 Управление пользователями",
|
||
"back_to_user_management_button": "⬅️ К управлению пользователями",
|
||
"admin_action_cancelled_default": "Действие отменено. Возврат в меню.",
|
||
"admin_action_cancelled_default_alert": "Действие отменено",
|
||
"back_to_admin_panel_button": "⬅️ В админку",
|
||
|
||
"admin_stats_header": "📊 Статистика Бота",
|
||
"admin_enhanced_users_stats_header": "Пользователи",
|
||
"admin_financial_stats_header": "Финансовая статистика",
|
||
"admin_stats_users": "👥 Пользователи: Всего - {total_users}, Забанено - {banned_users}, С активной подпиской - {active_subs}",
|
||
"admin_stats_recent_payments_header": "Последние платежи:",
|
||
"admin_stats_payment_item": "{status_emoji} {amount} {currency} от {user_info} ({p_status}) [{p_date}]",
|
||
"admin_stats_no_payments_found": "Платежей пока нет.",
|
||
"admin_stats_last_sync_header": "Последняя синхронизация с панелью:",
|
||
"admin_stats_sync_time": "Время",
|
||
"admin_stats_sync_status": "Статус",
|
||
"admin_stats_sync_users_processed": "Обработано юзеров с панели",
|
||
"admin_stats_sync_subs_synced": "Синхронизировано подписок",
|
||
"admin_stats_sync_details_label": "Детали",
|
||
"admin_sync_status_never_run": "Синхронизация с панелью еще не проводилась.",
|
||
|
||
"admin_broadcast_enter_message": "Введите сообщение для рассылки (HTML поддерживается):",
|
||
"admin_broadcast_confirm_prompt": "Вы собираетесь отправить следующее сообщение (первые 200 символов):\n\n{message_preview}\n\nПодтверждаете отправку?",
|
||
"confirm_broadcast_send_button": "✅ Отправить",
|
||
"cancel_broadcast_button": "❌ Отмена",
|
||
"admin_broadcast_sending_started": "Начинаю рассылку...",
|
||
"admin_broadcast_error_no_message": "Ошибка: сообщение для рассылки не найдено.",
|
||
"admin_broadcast_error_no_message_alert": "Сообщение для рассылки пустое!",
|
||
"admin_broadcast_finished_stats": "🏁 Рассылка завершена!\nОтправлено: {sent_count}\nНе удалось отправить: {failed_count}",
|
||
"admin_broadcast_cancelled": "Рассылка отменена.",
|
||
"admin_broadcast_cancelled_alert": "Рассылка отменена!",
|
||
"admin_broadcast_cancelled_nav_back": "Рассылка отменена. Вы возвращены в админ-панель.",
|
||
|
||
"admin_promo_create_prompt": "Введите детали промокода в формате: КОД ДНИ_БОНУСА МАКС_АКТИВАЦИЙ [СРОК_ДЕЙСТВИЯ_В_ДНЯХ_ОТ_СЕЙЧАС]\nПример: <code>{example_format}</code>\n(Срок действия необязателен, по умолчанию - бессрочный)",
|
||
"admin_promo_invalid_format": "Неверный формат ввода. Пожалуйста, используйте: КОД ДНИ_БОНУСА МАКС_АКТИВАЦИЙ [ДНИ_ДЕЙСТВИЯ]",
|
||
"admin_promo_invalid_code_format": "Код должен быть от 3 до 30 символов и содержать только буквы и цифры.",
|
||
"admin_promo_invalid_bonus_or_activations": "Количество бонусных дней и максимальных активаций должны быть положительными числами.",
|
||
"admin_promo_invalid_validity_days": "Срок действия промокода (в днях) должен быть положительным числом.",
|
||
"admin_promo_invalid_values": "Неверные значения. {error}",
|
||
"admin_promo_invalid_format_general": "Ошибка парсинга деталей промокода. Проверьте формат.",
|
||
"admin_promo_created_success": "✅ Промокод <code>{code}</code> успешно создан!\nБонус: {bonus_days} дней\nМакс. активаций: {max_activations}\nДействителен: {valid_until_str}",
|
||
"admin_promo_creation_failed_duplicate": "❌ Ошибка: Промокод <code>{code}</code> уже существует.",
|
||
"admin_promo_creation_failed": "❌ Не удалось создать промокод. Пожалуйста, попробуйте позже.",
|
||
"admin_active_promos_list_header": "Активные промокоды:",
|
||
"admin_no_active_promos": "Нет активных промокодов.",
|
||
"admin_promo_list_item": "<code>{code}</code>: +{bonus}дн, {current}/{max} акт., до {valid_until}",
|
||
"admin_promo_valid_indefinitely": "бессрочно",
|
||
"admin_promo_valid_until_display": "до {date}",
|
||
"admin_manage_promos_title": "Управление промокодами",
|
||
"admin_promo_edit_button": "✏️ Изменить",
|
||
"admin_promo_delete_button": "🗑 Удалить",
|
||
"admin_promo_edit_prompt": "Отправьте новые данные для <code>{code}</code> в формате: КОД ДНИ_БОНУСА МАКС_АКТИВАЦИЙ [СРОК]",
|
||
"admin_promo_updated_success": "Промокод <code>{code}</code> обновлен.",
|
||
"admin_promo_deleted_success": "Промокод <code>{code}</code> удален.",
|
||
"admin_promo_not_found": "Промокод не найден.",
|
||
|
||
"admin_ban_user_prompt": "Введите ID или @username пользователя для блокировки:",
|
||
"admin_user_not_found_in_bot_db": "Пользователь <code>{user_id}</code> не найден в базе данных бота.",
|
||
"admin_cannot_ban_self_or_admin": "Вы не можете заблокировать себя или другого администратора.",
|
||
"admin_user_already_banned": "Пользователь {user_id_or_username} уже заблокирован.",
|
||
"admin_user_banned_success_combined": "✅ Пользователь {user_id_or_username} успешно заблокирован в боте {panel_status_part}.",
|
||
"admin_panel_ban_success_part": "и на панели",
|
||
"admin_panel_ban_fail_part": ", но не удалось заблокировать на панели",
|
||
"admin_user_ban_failed_local_db_error": "❌ Не удалось заблокировать пользователя в локальной БД.",
|
||
"admin_unban_user_prompt": "Введите ID или @username пользователя для разблокировки:",
|
||
"admin_user_not_banned": "Пользователь {user_id_or_username} не заблокирован.",
|
||
"admin_user_unbanned_success_combined": "✅ Пользователь {user_id_or_username} успешно разблокирован в боте {panel_status_part}.",
|
||
"admin_panel_unban_success_part": "и на панели",
|
||
"admin_panel_unban_fail_part": ", но не удалось разблокировать на панели",
|
||
"admin_user_unban_failed_local_db_error": "❌ Не удалось разблокировать пользователя в локальной БД.",
|
||
"admin_no_banned_users": "В данный момент нет заблокированных пользователей.",
|
||
"admin_banned_list_title": "Список забаненных (стр. {current_page}/{total_pages}):",
|
||
"admin_banned_user_button_text": "{user_display} (ID: {user_id})",
|
||
"prev_page_button": "⬅️ Пред.",
|
||
"next_page_button": "След. ➡️",
|
||
"admin_user_card_title": "Карточка пользователя: {user_display}",
|
||
"user_card_info": "ID: <code>{user_id}</code>\nUsername: @{username}\nИмя: {first_name} {last_name}\nЯзык: {language_code}\nPanel UUID: <code>{panel_user_uuid}</code>\nСтатус: <b>{ban_status}</b>\nРегистрация: {reg_date}\nПодписка до: <b>{sub_end_date}</b>",
|
||
"user_card_banned": "ЗАБЛОКИРОВАН",
|
||
"user_card_active": "Активен",
|
||
"user_card_sub_na": "н/д",
|
||
"user_card_ban_button": "🚫 Заблокировать",
|
||
"user_card_unban_button": "✅ Разблокировать",
|
||
"user_card_back_to_banned_list_button": "⬅️ К списку забаненных",
|
||
"admin_confirm_action_title": "Подтверждение: {action_text}",
|
||
"ban_verb_l": "блокировка",
|
||
"unban_verb_l": "разблокировка",
|
||
"admin_confirm_ban_prompt": "Вы уверены, что хотите заблокировать пользователя {user_display} (ID: {user_id})?",
|
||
"admin_confirm_unban_prompt": "Вы уверены, что хотите разблокировать пользователя {user_display} (ID: {user_id})?",
|
||
"admin_user_banned_from_card_alert": "Пользователь {user_display} (ID: {user_id}) заблокирован.",
|
||
"admin_user_unbanned_from_card_alert": "Пользователь {user_display} (ID: {user_id}) разблокирован.",
|
||
"admin_user_ban_failed_db_error": "Ошибка блокировки пользователя в БД.",
|
||
"admin_user_unban_failed_db_error": "Ошибка разблокировки пользователя в БД.",
|
||
"admin_panel_status_update_fail_part": ", но статус на панели не обновлен",
|
||
|
||
"admin_logs_menu_title": "Меню логов:",
|
||
"admin_view_all_logs_button": "📜 Все логи сообщений",
|
||
"admin_view_user_logs_prompt_button": "👤 Логи пользователя",
|
||
"admin_export_logs_csv_button": "📄 Экспорт в CSV",
|
||
"admin_all_logs_title": "Все логи (стр. {current_page}/{total_pages}):",
|
||
"admin_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}",
|
||
"system_or_unknown_user": "Система/Неизв.",
|
||
"admin_prompt_for_user_id_or_username_logs": "Введите ID или @username пользователя для просмотра его логов:",
|
||
"admin_log_user_not_found": "Пользователь по запросу \"{input}\" не найден в базе данных бота.",
|
||
"admin_user_logs_title": "Логи пользователя {user_display} (стр. {current_page}/{total_pages}):",
|
||
|
||
"sync_started": "🔄 Начинаю синхронизацию данных с панелью...",
|
||
"sync_failed": "❌ Ошибка синхронизации с панелью. Детали: {details}",
|
||
"sync_completed": "✅ Синхронизация с панелью завершена. Статус: {status}. Детали: {details}",
|
||
"sync_completed_details": "Проверено: {total_checked} записей.\nПользователей синхронизировано/обновлено: {users_synced}.\nПодписок синхронизировано/обновлено: {subs_synced}.",
|
||
"sync_completed_with_errors_details": "Проверено: {total_checked} записей.\nПользователей синхронизировано/обновлено: {users_synced}.\nПодписок синхронизировано/обновлено: {subs_synced}.\nОшибок: {errors_count}.\n\nПервые ошибки:\n{error_details_preview}",
|
||
"no_errors_placeholder": "нет",
|
||
"admin_sync_initiated_from_panel": "Синхронизация запущена...",
|
||
"admin_panel_user_creation_failed": "❌ Не удалось создать пользователя на панели для TG ID {user_id}. Панель недоступна?",
|
||
"error_displaying_logs_too_long": "Ошибка: логи слишком длинные для отображения одним сообщением. Попробуйте найти логи по конкретному пользователю.",
|
||
"error_displaying_statistics": "Ошибка отображения статистики.",
|
||
"stub_page_display": "Страница",
|
||
|
||
"subscription_72h_notification": "👋 Привет, {user_name}!\n\n⏳ Ваша подписка на VPN истекает через 3 дня — {end_date}.\n\nПродлите её по кнопке ниже.",
|
||
"subscription_48h_notification": "👋 Привет, {user_name}!\n\n⏳ Ваша подписка на VPN истекает через 2 дня — {end_date}.\n\nПродлите её по кнопке ниже.",
|
||
"subscription_24h_notification": "👋 Привет, {user_name}!\n\n⏳ Ваша подписка на VPN истекает через 1 день — {end_date}.\n\nПродлите её по кнопке ниже.",
|
||
"subscription_expired_notification": "👋 Привет, {user_name}!\n\n⛔ Срок вашей подписки на VPN истек ({end_date}).\n\nПродлите её по кнопке ниже.",
|
||
"subscription_expired_yesterday_notification": "👋 Привет, {user_name}!\n\n⏳ Ваша подписка на VPN истекла сутки назад ({end_date}).\n\nПродлите её по кнопке ниже.",
|
||
|
||
"admin_new_trial_notification": "\ud83c\udf21 Пользователь {user_id} активировал пробный период до {end_date}.",
|
||
|
||
"admin_promo_activation_notification": "\ud83c\udf81 Пользователь {user_id} активировал промокод {code} (+{bonus_days} дн.)",
|
||
|
||
"error_unknown": "Произошла неизвестная ошибка.",
|
||
|
||
"admin_user_management_prompt": "👤 Управление пользователями\n\nВведите ID пользователя или @username для поиска:",
|
||
"admin_user_card_title": "Карточка пользователя",
|
||
"admin_user_subscription_info": "Информация о подписке:",
|
||
"admin_user_reset_trial_button": "🔄 Сбросить триал",
|
||
"admin_user_add_subscription_button": "➕ Добавить дни",
|
||
"admin_user_toggle_ban_button": "🚫 Заблокировать/Разблокировать",
|
||
"admin_user_send_message_button": "✉️ Отправить сообщение",
|
||
"admin_user_view_logs_button": "📜 Действия пользователя",
|
||
"admin_user_refresh_button": "🔄 Обновить",
|
||
"admin_user_search_new_button": "🔍 Найти другого",
|
||
"admin_user_view_all_logs_button": "📋 Все действия",
|
||
"admin_user_back_to_card_button": "🔙 К карточке",
|
||
|
||
"admin_user_not_found": "❌ Пользователь не найден: {input}",
|
||
"admin_user_not_found_action": "Пользователь не найден",
|
||
"admin_user_card_error": "❌ Ошибка отображения карточки пользователя",
|
||
"admin_user_trial_reset_success": "✅ Триал сброшен! Пользователь может активировать триал заново.",
|
||
"admin_user_trial_reset_error": "❌ Ошибка сброса триала",
|
||
"admin_user_add_subscription_prompt": "➕ Добавление дней подписки для пользователя {user_id}\n\nВведите количество дней для добавления:",
|
||
"admin_user_invalid_days": "❌ Неверное количество дней. Введите число от 1 до 3650.",
|
||
"admin_user_subscription_added_success": "✅ Успешно добавлено {days} дней подписки пользователю {user_id}",
|
||
"admin_user_subscription_added_error": "❌ Ошибка добавления дней подписки",
|
||
"admin_user_ban_toggle_success": "✅ Пользователь {status}",
|
||
"admin_user_ban_toggle_error": "❌ Ошибка изменения статуса блокировки",
|
||
"admin_user_send_message_prompt": "✉️ Отправка сообщения пользователю {user_id}\n\nВведите текст сообщения:",
|
||
"admin_user_message_too_long": "❌ Сообщение слишком длинное (максимум 4000 символов)",
|
||
"admin_user_message_sent_success": "✅ Сообщение отправлено пользователю {user_id}",
|
||
"admin_user_message_sent_error": "❌ Ошибка отправки сообщения",
|
||
"admin_user_no_logs": "📜 У пользователя нет действий",
|
||
"admin_user_logs_error": "❌ Ошибка загрузки действий пользователя",
|
||
"admin_direct_message_signature": "\n\n---\n💬 Сообщение от администратора",
|
||
|
||
"inline_referral_message": "🚀 Привет! Попробуй этот крутой VPN сервис!\n\n✨ Быстрый и надежный\n🔒 Полная анонимность\n🌍 Серверы по всему миру\n💎 Бесплатный пробный период\n\nПереходи по ссылке: {referral_link}",
|
||
"inline_referral_title": "🎁 Пригласить друга",
|
||
"inline_referral_description": "Поделиться реферальной ссылкой для получения бонусов",
|
||
|
||
"inline_user_stats_message": "👥 <b>Статистика пользователей</b>\n\n📊 Всего: <b>{total}</b>\n📈 Активных сегодня: <b>{active_today}</b>\n💳 С платной подпиской: <b>{paid}</b>\n🆓 На пробном периоде: <b>{trial}</b>\n😴 Неактивных: <b>{inactive}</b>\n🚫 Заблокированных: <b>{banned}</b>\n🎁 По реферальной программе: <b>{referral}</b>",
|
||
"inline_admin_user_stats_title": "👥 Статистика пользователей",
|
||
"inline_admin_user_stats_desc": "Всего: {total}, Активных: {paid}",
|
||
|
||
"inline_financial_stats_message": "💰 <b>Финансовая статистика</b>\n\n📅 За сегодня: <b>{today:.2f} RUB</b>\n ({today_count} платежей)\n📅 За неделю: <b>{week:.2f} RUB</b>\n📅 За месяц: <b>{month:.2f} RUB</b>\n🏆 За все время: <b>{all_time:.2f} RUB</b>",
|
||
"inline_admin_financial_stats_title": "💰 Финансовая статистика",
|
||
"inline_admin_financial_stats_desc": "Сегодня: {today:.2f} RUB",
|
||
|
||
"inline_system_stats_message": "🖥 <b>Системная статистика</b>\n\n🟢 Онлайн: <b>{online}</b>\n🔴 Офлайн: <b>{offline}</b>\n⏰ Истекшие: <b>{expired}</b>\n👥 Всего пользователей: <b>{total}</b>",
|
||
"inline_admin_system_stats_title": "🖥 Системная статистика",
|
||
"inline_admin_system_stats_desc": "Онлайн: {online}, Офлайн: {offline}",
|
||
|
||
"inline_admin_help_message": "🤖 <b>Inline режим бота</b>\n\n📱 <b>Доступные команды:</b>\n\n🎁 <b>реф/ref</b> - поделиться реферальной ссылкой\n👥 <b>стат/stat</b> - статистика пользователей\n💰 <b>финансы</b> - финансовая статистика\n🖥 <b>система</b> - системная статистика\n\n💡 Просто напишите @{bot_username} и начните вводить команду в любом чате!",
|
||
"inline_admin_help_title": "🤖 Inline помощь (Админ)",
|
||
"inline_admin_help_desc": "Доступны команды: реф, стат, финансы, система",
|
||
|
||
"inline_user_help_message": "🤖 <b>Inline режим бота</b>\n\n📱 <b>Доступные команды:</b>\n\n🎁 <b>реф/ref</b> - поделиться реферальной ссылкой\n\n💡 Просто напишите @{bot_username} и начните вводить 'реф' в любом чате!",
|
||
"inline_user_help_title": "🤖 Inline помощь",
|
||
"inline_user_help_desc": "Доступна команда: реф (реферальная ссылка)",
|
||
|
||
"log_referral_suffix": " (реферал от {referrer_id})",
|
||
"log_new_user_registration": "👤 <b>Новый пользователь</b>\n\n🆔 ID: <code>{user_id}</code>\n👤 Имя: {user_display}{referral_text}\n📅 Время: {timestamp}",
|
||
"log_payment_received": "{provider_emoji} <b>Получен платеж</b>\n\n👤 Пользователь: {user_display}\n💰 Сумма: <b>{amount} {currency}</b>\n📅 Период: <b>{months} мес.</b>\n🏦 Провайдер: {payment_provider}\n🕐 Время: {timestamp}",
|
||
"log_promo_activation": "🎁 <b>Активирован промокод</b>\n\n👤 Пользователь: {user_display}\n🏷 Код: <code>{promo_code}</code>\n🎯 Бонус: <b>+{bonus_days} дн.</b>\n🕐 Время: {timestamp}",
|
||
"log_trial_activation": "🆓 <b>Активирован триал</b>\n\n👤 Пользователь: {user_display}\n⏰ Действует до: <b>{end_date}</b>\n🕐 Время: {timestamp}",
|
||
|
||
"admin_general_cancel_operation": "Операция отменена ❌",
|
||
"admin_promo_codes_menu_bulk_create": "📦 Массовое создание",
|
||
"admin_bulk_promo_create_prompt": "📦 Массовое создание промокодов\n\nВведите данные в формате:\n<code>количество|дни|описание</code>\n\nПример:\n<code>10|7|Промо на неделю</code>",
|
||
"admin_bulk_promo_invalid_format": "❌ Неверный формат. Используйте: количество|дни|описание",
|
||
"admin_bulk_promo_created_success": "✅ Создано {count} промокодов на {days} дней!\n\nОписание: {description}\nПромокоды: {codes}",
|
||
|
||
"admin_logs_export_csv": "📄 Экспорт в CSV",
|
||
"admin_logs_csv_export_started": "📄 Начинаю экспорт логов в CSV...",
|
||
"admin_logs_csv_export_success": "✅ Логи экспортированы! Файл прикреплен выше.",
|
||
|
||
"admin_csv_header_log_id": "ID Лога",
|
||
"admin_csv_header_timestamp": "Время",
|
||
"admin_csv_header_user_id": "ID Пользователя",
|
||
"admin_csv_header_telegram_username": "Username",
|
||
"admin_csv_header_telegram_first_name": "Имя",
|
||
"admin_csv_header_event_type": "Тип события",
|
||
"admin_csv_header_content": "Содержание",
|
||
"admin_csv_header_is_admin_event": "Админ событие",
|
||
"admin_csv_header_target_user_id": "ID Целевого юзера",
|
||
"admin_csv_header_raw_update_preview": "Превью обновления",
|
||
|
||
"admin_banned_users_empty": "📋 Заблокированные пользователи\n\nСписок пуст",
|
||
"admin_banned_users_list": "📋 Заблокированные пользователи ({count}):\n\n{users}",
|
||
|
||
"admin_panel_stats_header": "Статистика панели",
|
||
"admin_bulk_promo_invalid_values": "❌ Неверные значения: {error}",
|
||
|
||
"admin_bulk_promo_step1_quantity": "📦 <b>Массовое создание промокодов</b>\n\n<b>Шаг 1 из 4:</b> Количество промокодов\n\nВведите количество промокодов для создания (1-1000):",
|
||
"admin_bulk_promo_step2_bonus_days": "📦 <b>Массовое создание промокодов</b>\n\n<b>Шаг 2 из 4:</b> Бонусные дни\n\nКоличество: <b>{quantity}</b>\n\nВведите количество бонусных дней (1-365):",
|
||
"admin_bulk_promo_step3_max_activations": "📦 <b>Массовое создание промокодов</b>\n\n<b>Шаг 3 из 4:</b> Максимальные активации\n\nКоличество: <b>{quantity}</b>\nБонусные дни: <b>{bonus_days}</b>\n\nВведите максимальное количество активаций для каждого промокода (1-10000):",
|
||
"admin_bulk_promo_step4_validity": "📦 <b>Массовое создание промокодов</b>\n\n<b>Шаг 4 из 4:</b> Срок действия\n\nКоличество: <b>{quantity}</b>\nБонусные дни: <b>{bonus_days}</b>\nМакс. активации: <b>{max_activations}</b>\n\nВыберите срок действия промокодов:",
|
||
|
||
"admin_bulk_promo_invalid_quantity": "❌ Количество должно быть от 1 до 1000",
|
||
"admin_bulk_promo_invalid_bonus_days": "❌ Бонусные дни должны быть от 1 до 365",
|
||
"admin_bulk_promo_invalid_max_activations": "❌ Максимальные активации должны быть от 1 до 10000",
|
||
"admin_bulk_promo_invalid_validity_days": "❌ Дни действия должны быть от 1 до 365",
|
||
|
||
"admin_bulk_promo_unlimited_validity": "♾️ Неограниченно",
|
||
"admin_bulk_promo_set_validity": "⏰ Установить срок",
|
||
"admin_bulk_promo_enter_validity_days": "⏰ Введите количество дней действия промокодов (1-365):",
|
||
|
||
"admin_bulk_promo_creating": "⏳ Создаю {quantity} промокодов...",
|
||
|
||
"admin_promo_step1_code": "🎟 <b>Создание промокода</b>\n\n<b>Шаг 1 из 4:</b> Код промокода\n\nВведите код промокода (3-30 символов, только буквы и цифры):",
|
||
"admin_promo_step2_bonus_days": "🎟 <b>Создание промокода</b>\n\n<b>Шаг 2 из 4:</b> Бонусные дни\n\nКод: <b>{code}</b>\n\nВведите количество бонусных дней (1-365):",
|
||
"admin_promo_step3_max_activations": "🎟 <b>Создание промокода</b>\n\n<b>Шаг 3 из 4:</b> Максимальные активации\n\nКод: <b>{code}</b>\nБонусные дни: <b>{bonus_days}</b>\n\nВведите максимальное количество активаций (1-10000):",
|
||
"admin_promo_step4_validity": "🎟 <b>Создание промокода</b>\n\n<b>Шаг 4 из 4:</b> Срок действия\n\nКод: <b>{code}</b>\nБонусные дни: <b>{bonus_days}</b>\nМакс. активации: <b>{max_activations}</b>\n\nВыберите срок действия промокода:",
|
||
|
||
"admin_promo_invalid_code_format": "❌ Код промокода должен содержать 3-30 символов (только буквы и цифры)",
|
||
"admin_promo_code_already_exists": "❌ Промокод с таким кодом уже существует",
|
||
"admin_promo_processing_error": "❌ Ошибка обработки промокода",
|
||
"admin_promo_unlimited_validity": "♾️ Неограниченно",
|
||
"admin_promo_set_validity": "⏰ Установить срок",
|
||
"admin_promo_enter_validity_days": "⏰ Введите количество дней действия промокода (1-365):",
|
||
"admin_promo_skip_description": "⏭️ Пропустить",
|
||
"admin_promo_description_too_long": "❌ Описание не должно превышать 200 символов",
|
||
"admin_promo_creating": "⏳ Создаю промокод...",
|
||
"admin_promo_created_success": "✅ Промокод создан!\n\n🎟 Код: <b>{code}</b>\n🎁 Бонусные дни: <b>{days}</b>\n🔢 Максимальные активации: <b>{max_act}</b>\n⏰ Действует до: <b>{validity}</b>",
|
||
"admin_promo_creation_failed": "❌ Ошибка создания промокода: {error}",
|
||
|
||
"admin_panel_back_button": "⬅️ Назад",
|
||
"admin_bulk_promo_creation_failed": "❌ Ошибка создания промокодов: {error}",
|
||
|
||
"admin_user_id_label": "🆔 <b>ID:</b>",
|
||
"admin_user_name_label": "👤 <b>Имя:</b>",
|
||
"admin_user_username_label": "📱 <b>Username:</b>",
|
||
"admin_user_language_label": "🌍 <b>Язык:</b>",
|
||
"admin_user_registration_label": "📅 <b>Регистрация:</b>",
|
||
"admin_user_status_label": "🛡 <b>Статус:</b>",
|
||
"admin_user_referral_label": "🎁 <b>Привлечен по реферальной программе от:</b>",
|
||
"admin_user_panel_uuid_label": "🔗 <b>Panel UUID:</b>",
|
||
"admin_user_panel_status_label": "📊 <b>Статус на панели:</b>",
|
||
"admin_user_traffic_label": "📊 <b>Трафик:</b>",
|
||
"admin_user_subscription_label": "💼 <b>Подписка:</b>",
|
||
"admin_user_trial_label": "🏡 <b>Триал:</b>",
|
||
|
||
"admin_user_status_banned": "🚫 Заблокирован",
|
||
"admin_user_status_active": "✅ Активен",
|
||
"admin_user_trial_used": "Использовал",
|
||
"admin_user_trial_not_used": "Не использовал",
|
||
"admin_user_ban_action_banned": "заблокирован",
|
||
"admin_user_ban_action_unbanned": "разблокирован",
|
||
"admin_user_na_value": "N/A",
|
||
|
||
"admin_user_subscription_active": "Активна до {end_date}",
|
||
"admin_user_subscription_expired": "Истекла {end_date}",
|
||
"admin_user_subscription_none": "Нет активной подписки",
|
||
|
||
"admin_user_logs_title": "📋 <b>Логи пользователя {user_id}</b>",
|
||
"admin_user_logs_empty": "Логи отсутствуют",
|
||
"admin_user_logs_count": "Всего записей: {count}",
|
||
"admin_user_logs_entry": "📅 {timestamp}\n📝 {event_type}: {content}",
|
||
|
||
"admin_user_actions_count_label": "📜 <b>Всего действий:</b>",
|
||
"admin_user_subscription_active_until": "⏰ <b>Действует до:</b>",
|
||
"admin_user_subscription_error": "Ошибка загрузки",
|
||
|
||
"admin_bulk_promo_unique_generation_failed": "Не удалось создать уникальный промокод",
|
||
|
||
"admin_suspicious_promo_attempt_notification": "⚠️ <b>Подозрительная попытка ввода промокода</b>\n\n👤 Пользователь: <b>@{user_username}</b> (ID: {user_id})\n📝 Имя: <b>{user_first_name}</b>\n💬 Введенный текст: <b>{promo_code_input}</b>",
|
||
"admin_suspicious_promo_attempt_notification_no_username": "⚠️ <b>Подозрительная попытка ввода промокода</b>\n\n👤 Пользователь ID: <b>{user_id}</b>\n📝 Имя: <b>{user_first_name}</b>\n💬 Введенный текст: <b>{promo_code_input}</b>",
|
||
|
||
"admin_promo_management_button": "🎟 Управление промокодами",
|
||
"admin_promo_management_title": "🎟 <b>Управление промокодами</b>\n\nВыберите промокод для детального просмотра:",
|
||
"admin_promo_management_empty": "📭 Промокоды отсутствуют",
|
||
"admin_promo_card_title": "🎟 <b>Промокод: {code}</b>",
|
||
"admin_promo_card_bonus_days": "🎁 Бонусные дни: <b>{days}</b>",
|
||
"admin_promo_card_activations": "🔢 Активации: <b>{current}/{max}</b>",
|
||
"admin_promo_card_validity": "⏰ Действует до: <b>{validity}</b>",
|
||
"admin_promo_card_status": "📊 Статус: <b>{status}</b>",
|
||
"admin_promo_card_created": "📅 Создан: <b>{created}</b>",
|
||
"admin_promo_card_created_by": "👤 Создал: <b>{creator}</b>",
|
||
"admin_promo_status_active": "✅ Активен",
|
||
"admin_promo_status_inactive": "🚫 Неактивен",
|
||
"admin_promo_status_expired": "⏰ Истек",
|
||
"admin_promo_status_used_up": "🔄 Исчерпан",
|
||
"admin_promo_edit_button": "✏️ Редактировать",
|
||
"admin_promo_toggle_status_button": "🔄 Вкл/Выкл",
|
||
"admin_promo_delete_button": "🗑 Удалить",
|
||
"admin_promo_view_activations_button": "📋 Активации",
|
||
"admin_promo_back_to_list_button": "⬅️ К списку",
|
||
|
||
"admin_panel_stats_header": "Статистика панели",
|
||
"admin_panel_online_label": "Онлайн",
|
||
"admin_panel_offline_label": "Офлайн",
|
||
"admin_panel_expired_label": "Истекшие",
|
||
"admin_panel_limited_label": "Ограниченные",
|
||
"admin_panel_total_users_label": "Всего пользователей",
|
||
"admin_panel_cpu_usage_label": "Загрузка CPU",
|
||
"admin_panel_memory_usage_label": "Использование RAM",
|
||
"admin_panel_traffic_today_label": "Трафик сегодня",
|
||
"admin_panel_traffic_week_label": "Трафик за неделю",
|
||
"admin_panel_traffic_month_label": "Трафик за месяц",
|
||
"admin_panel_nodes_label": "Активных нод",
|
||
"admin_panel_system_stats_error": "Ошибка получения системной статистики",
|
||
"admin_panel_bandwidth_stats_error": "Ошибка получения статистики трафика",
|
||
"admin_panel_nodes_stats_error": "Ошибка получения статистики нод",
|
||
"admin_panel_stats_fetch_error": "Ошибка получения данных с панели",
|
||
"admin_panel_stats_error_details": "Детали",
|
||
|
||
"inline_referral_message": "🎁 Получи бонусы за друзей!\n\nПодключай друзей к быстрому VPN и получай бонусные дни за каждого нового пользователя.\n\n💰 Твоя реферальная ссылка:\n{referral_link}",
|
||
"inline_referral_title": "Реферальная ссылка",
|
||
"inline_referral_description": "Поделиться реферальной ссылкой для получения бонусов",
|
||
"inline_stats_title": "Статистика бота",
|
||
"inline_stats_description": "Всего: {total}, Активных: {active}",
|
||
"inline_financial_title": "Финансовая статистика",
|
||
"inline_financial_description": "Сегодня: {today} RUB",
|
||
"inline_system_title": "Системная статистика",
|
||
"inline_system_description": "Онлайн: {online}, Офлайн: {offline}",
|
||
"inline_admin_help_title": "Помощь по командам",
|
||
"inline_admin_help_description": "Доступны команды: реф, стат, финансы, система",
|
||
"inline_user_help_title": "Помощь по командам",
|
||
"inline_user_help_description": "Доступна команда: реф (реферальная ссылка)",
|
||
|
||
"admin_user_stats_total_label": "Всего",
|
||
"admin_user_stats_paid_subs_label": "С платной подпиской",
|
||
"admin_user_stats_trial_label": "На пробном периоде",
|
||
"admin_user_stats_inactive_label": "Неактивных",
|
||
"admin_user_stats_banned_label": "Заблокированных",
|
||
"admin_user_stats_referral_label": "Привлечено по реферальной программе",
|
||
"admin_financial_today_label": "За сегодня",
|
||
"admin_financial_week_label": "За неделю",
|
||
"admin_financial_month_label": "За месяц",
|
||
"admin_financial_all_time_label": "За все время",
|
||
"admin_financial_payments_label": "платежей"
|
||
}
|