- Replaced the trial reset functionality to delete all user subscriptions instead of deactivating them, ensuring a complete reset of trial eligibility. - Added a new method to retrieve banned users from the database, enhancing the admin's ability to manage user bans. - Updated user management handlers to utilize the new subscription deletion and banned users retrieval features. - Enhanced localization files to support new messages related to banned users.
328 lines
34 KiB
JSON
328 lines
34 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_new_payment_notification": "\ud83d\udcb3 Получен платеж от пользователя {user_id}: {months} мес. за {amount} {currency}.",
|
||
"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}"
|
||
}
|