"""
Russian translations for RateLoader GUI application.
"""

TRANSLATIONS = {
    # Main window
    "title": "RateLoader v3.0",

    # Menu items
    "menu_file": "Файл",
    "menu_help": "Справка",
    "menu_exit": "Выход",
    "menu_about": "О программе",

    # Tab names
    "tab_rate_loader": "Загрузчик тарифов",
    "tab_export_mailer": "Экспорт почты",
    "tab_price_export": "Экспорт цен",
    "tab_database_schema": "Схема базы данных",
    "tab_ip_management": "Управление IP",
    "tab_settings": "Настройки",
    "tab_logs": "Журналы",

    # Settings sections
    "oracle_settings": "Настройки Oracle:",
    "export_mailer_settings": "Настройки ExportMailer:",
    "price_export_settings": "Настройки PriceExport:",
    "rate_loader_settings": "Настройки RateLoader:",
    "scheduler_settings": "Настройки планировщика:",

    # Settings labels
    "oracleconnectstring": "Строка подключения Oracle:",
    "nls_lang": "Язык NLS:",
    "file_encoding": "Кодировка файла:",
    "hotel_key": "Ключ отеля:",
    "url": "URL:",
    "block-url": "URL блоков:",
    "sendfrom": "Отправитель:",
    "sendto": "Получатель:",
    "mailserver": "Почтовый сервер:",
    "port": "Порт:",
    "pwd": "Пароль:",
    "ssl": "Включить SSL",
    "compress_attachments": "Сжимать вложения",
    "auto_update_sql": "Автообновление SQL",
    "api_url": "URL API:",
    "token": "Токен:",
    "months": "Месяцы:",
    "deeper_logging": "Расширенное логирование",
    "server_port": "Порт сервера:",
    "schedule_hours": "Часы расписания:",
    "enable_price_export_scheduling": "Включить планирование экспорта цен",

    # Buttons
    "save_apply": "Сохранить и применить",
    "reload": "Перезагрузить",
    "run_now": "Запустить сейчас",
    "start_server": "Запустить сервер",
    "stop_server": "Остановить сервер",
    "execute_schema": "Выполнить схему",
    "validate_schema": "Проверить схему",
    "parse_schema": "Разобрать схему",
    "generate_schema": "Создать схему",
    "browse": "Обзор",
    "toggle_selected": "Переключить выбранное",
    "remove_selected": "Удалить выбранное",
    "refresh": "Обновить",
    "export_list": "Экспорт списка",
    "clear_log": "Очистить журнал",

    # Checkboxes
    "auto_start_server": "Автозапуск сервера при запуске приложения",
    "enable_deeper_logging": "Включить расширенное логирование",
    "use_embedded_schema": "Использовать встроенную схему",
    "auto_refresh": "Автообновление",

    # Status labels
    "status_ready": "Готов",
    "last_run": "Последний запуск:",
    "never": "Никогда",
    "server_running": "Сервер работает",
    "server_stopped": "Сервер остановлен",
    "queue_length": "Длина очереди:",
    "scheduler_running": "Планировщик работает",
    "scheduler_stopped": "Планировщик остановлен",

    # Frame titles
    "control": "Управление",
    "status": "Статус",
    "progress": "Прогресс",
    "server_control": "Управление сервером",
    "server_status": "Статус сервера",
    "server_information": "Информация о сервере",
    "schema_management": "Управление схемой",
    "global_access_control": "Глобальный контроль доступа",
    "ip_addresses": "IP адреса",
    "log_content": "Содержимое журнала",

    # IP Management
    "allowed_blacklist": "Разрешено (режим черного списка)",
    "restricted_whitelist": "Ограничено (режим белого списка)",
    "total_ips": "Всего IP:",
    "allowed": "Разрешено:",
    "restricted": "Ограничено:",

    # Column headers
    "ip_address": "IP адрес",
    "status": "Статус",
    "last_seen": "Последнее посещение",
    "requests": "Запросы",
    "last_request": "Последний запрос",

    # About dialog
    "about_title": "О программе RateLoader",
    "about_text": """RateLoader v3.0

Объединенное приложение для управления тарифами:
- Функциональность экспорта CSV и отправки почты
- Экспорт цен в JSON API
- HTTP сервер для загрузки тарифов

Разработка и поддержка Oracle Hospitality Suite V8 (ранее Fidelio V8)
Автор: Murat
Сайт: http://fidelio.pro
Telegram: t.me://fideliopro

Фаза 7: Реализация GUI""",

    # Help system
    "help_rate_loader": """Загрузчик тарифов

Этот раздел позволяет управлять HTTP сервером, который принимает запросы на загрузку тарифов.

• Автозапуск: Включите для автоматического запуска сервера при старте приложения
• Управление сервером: Кнопки для ручного запуска/остановки сервера
• Статус: Отображает текущее состояние сервера и очереди задач
• Информация: Показывает порт сервера и количество подключений""",

    "help_export_mailer": """Экспорт почты

Выполняет экспорт данных из базы данных Oracle в CSV файлы и отправляет их по электронной почте.

• Запуск: Нажмите "Запустить сейчас" для немедленного выполнения
• Статус: Отображает ход выполнения и результаты
• Прогресс: Показывает индикатор выполнения задачи
• Журнал: Детальная информация о каждом шаге процесса""",

    "help_price_export": """Экспорт цен

Отправляет данные о ценах в JSON формате на внешний API.

• Запуск: Нажмите "Запустить сейчас" для немедленного выполнения
• Расширенное логирование: Включите для более детального логирования
• Статус: Отображает результаты отправки данных
• Прогресс: Индикатор выполнения экспорта""",

    "help_database_schema": """Схема базы данных

Управление структурой базы данных Oracle.

• Выполнить схему: Создает или обновляет структуру базы данных
• Проверить схему: Проверяет соответствие текущей схемы ожидаемой
• Разобрать схему: Анализирует SQL файл и показывает структуру
• Создать схему: Генерирует SQL на основе модели данных""",

    "help_ip_management": """Управление IP

Контроль доступа к серверу на основе IP адресов.

• Глобальный контроль: Выберите режим черного или белого списка
• IP адреса: Список всех отслеживаемых IP с их статусом
• Управление: Переключайте статус или удаляйте IP адреса""",

    "help_settings": """Настройки

Конфигурация всех параметров приложения.

• Oracle: Настройки подключения к базе данных
• ExportMailer: Параметры экспорта и отправки почты
• PriceExport: Настройки API экспорта цен
• RateLoader: Параметры HTTP сервера
• Планировщик: Настройки автоматического выполнения

Наведите курсор на настройку для получения подсказки.""",

    "help_logs": """Журналы

Просмотр и управление файлами журналов.

• Выбор файла: Выберите журнал для просмотра
• Автообновление: Автоматическое обновление содержимого
• Обновить: Ручное обновление журнала
• Очистить: Удаление содержимого выбранного журнала""",

    # Tooltips for settings
    "tooltip_oracleconnectstring": "Строка подключения к базе данных Oracle в формате: пользователь/пароль@хост:порт/сервис",
    "tooltip_nls_lang": "Настройка языкового стандарта Oracle (например: AMERICAN_AMERICA.CL8MSWIN1251)",
    "tooltip_file_encoding": "Кодировка файлов CSV (cp1251 для Windows, utf-8 для других систем)",
    "tooltip_hotel_key": "Уникальный идентификатор отеля для экспорта данных",
    "tooltip_url": "URL для загрузки основного SQL файла с сервера",
    "tooltip_block_url": "URL для загрузки SQL файла блоков с сервера",
    "tooltip_sendfrom": "Адрес электронной почты отправителя",
    "tooltip_sendto": "Адрес электронной почты получателя (несколько адресов через запятую)",
    "tooltip_mailserver": "Адрес SMTP сервера (например: smtp.yandex.ru)",
    "tooltip_port": "Порт SMTP сервера (обычно 465 для SSL, 587 для TLS)",
    "tooltip_pwd": "Пароль для аутентификации на SMTP сервере",
    "tooltip_ssl": "Включить шифрование SSL/TLS для безопасной отправки почты",
    "tooltip_compress_attachments": "Сжимать CSV файлы в ZIP архив перед отправкой (рекомендуется для больших файлов)",
    "tooltip_auto_update_sql": "Автоматически загружать обновления SQL файлов с сервера перед каждым запуском",
    "tooltip_api_url": "URL внешнего API для отправки данных о ценах",
    "tooltip_token": "Токен аутентификации для доступа к API экспорта цен",
    "tooltip_months": "Количество месяцев для экспорта цен (начиная с текущего)",
    "tooltip_deeper_logging": "Включить подробное логирование всех операций экспорта цен",
    "tooltip_server_port": "Порт для HTTP сервера загрузки тарифов (обычно 8000)",
    "tooltip_schedule_hours": "Часы дня для автоматического выполнения задач (через запятую, 0-23)",
    "tooltip_enable_price_export_scheduling": "Включить автоматическое планирование экспорта цен по расписанию",

    # Error messages
    "error": "Ошибка",
    "error_saving_settings": "Ошибка сохранения настроек",
    "error_reloading_settings": "Ошибка перезагрузки настроек",
    "error_running_export_mailer": "Ошибка запуска ExportMailer",
    "error_running_price_export": "Ошибка запуска PriceExport",
    "error_starting_server": "Ошибка запуска сервера",
    "error_stopping_server": "Ошибка остановки сервера",
    "error_updating_status": "Ошибка обновления статуса",
    "error_refreshing_logs": "Ошибка обновления журналов",
    "error_clearing_log": "Ошибка очистки журнала",
    "error_exporting_ip_list": "Ошибка экспорта списка IP",

    # Success messages
    "settings_saved": "Настройки сохранены успешно!",
    "settings_reloaded": "Настройки перезагружены успешно!",
    "log_cleared": "Журнал очищен успешно",

    # Confirmation messages
    "confirm_clear_log": "Вы уверены, что хотите очистить",
    "confirm_remove_ip": "Удалить IP из отслеживания?",

    # Selection messages
    "select_ip_to_toggle": "Пожалуйста, выберите IP адрес для переключения",
    "select_ip_to_remove": "Пожалуйста, выберите IP адрес для удаления",
    "ip_manager_not_available": "Менеджер IP недоступен",

    # Log file names
    "log_file_rateloader": "rateloader.log",

    # Progress messages
    "task_enqueued": "Задача поставлена в очередь",
    "server_started": "Сервер запущен",
    "server_stopped": "Сервер остановлен",
    "auto_start_enabled": "Автозапуск сервера включен",
    "auto_start_disabled": "Автозапуск сервера отключен",
    "deeper_logging_enabled": "Расширенное логирование включено",
    "deeper_logging_disabled": "Расширенное логирование отключено",
}


def get_text(key, default=None):
    """Get translated text by key."""
    return TRANSLATIONS.get(key, default or key)


def get_tooltip(key):
    """Get tooltip text by key."""
    tooltip_key = f"tooltip_{key}"
    return TRANSLATIONS.get(tooltip_key, "")