{
  "common": {
    "login": "Войти",
    "logout": "Выйти",
    "back": "Назад",
    "cancel": "Отмена",
    "confirm": "Подтвердить",
    "save": "Сохранить",
    "delete": "Удалить",
    "edit": "Редактировать",
    "add": "Добавить",
    "update": "Обновить",
    "refresh": "Обновить",
    "close": "Закрыть",
    "success": "Успешно",
    "error": "Ошибка",
    "info": "Информация",
    "warning": "Внимание",
    "loading": "Загрузка...",
    "connecting": "Подключение...",
    "connected": "Подключено",
    "disconnected": "Отключено",
    "connecting_status": "Подключение",
    "connected_status": "Подключено",
    "disconnected_status": "Отключено",
    "yes": "Да",
    "no": "Нет",
    "not_set": "Не задано",
    "optional": "Необязательно",
    "required": "Обязательно",
    "api_key": "Ключ",
    "base_url": "Адрес",
    "prefix": "Префикс",
    "proxy_url": "Прокси",
    "alias": "Псевдоним",
    "failure": "Сбой",
    "unknown_error": "Неизвестная ошибка",
    "quota_update_required": "Пожалуйста, обновите CPA или проверьте наличие обновлений",
    "quota_check_credential": "Пожалуйста, проверьте статус учётных данных",
    "copy": "Копировать",
    "custom_headers_label": "Пользовательские заголовки",
    "custom_headers_hint": "Необязательно — HTTP-заголовки для отправки с запросом. Оставьте пустым для удаления.",
    "custom_headers_add": "Добавить заголовок",
    "custom_headers_key_placeholder": "Имя заголовка, например X-Custom-Header",
    "custom_headers_value_placeholder": "Значение заголовка",
    "model_name_placeholder": "Имя модели, напр. claude-3-5-sonnet-20241022",
    "model_alias_placeholder": "Псевдоним модели (необязательно)"
  },
  "title": {
    "main": "Центр управления CLI Proxy API",
    "login": "Центр управления CLI Proxy API",
    "abbr": "CPAMC"
  },
  "auto_login": {
    "title": "Автовход...",
    "message": "Пытаемся подключиться к серверу, используя сохранённые данные"
  },
  "login": {
    "subtitle": "Введите данные подключения, чтобы получить доступ к панели управления",
    "connection_title": "Адрес подключения",
    "connection_current": "Текущий URL",
    "connection_auto_hint": "Система автоматически использует текущий URL для подключения",
    "custom_connection_label": "Пользовательский URL подключения:",
    "custom_connection_placeholder": "Напр.: https://example.com:8317",
    "custom_connection_hint": "По умолчанию используется текущий URL. При необходимости замените его.",
    "use_current_address": "Использовать текущий URL",
    "remember_password_label": "Запомнить пароль",
    "management_key_label": "Ключ управления:",
    "management_key_placeholder": "Введите ключ управления",
    "connect_button": "Подключиться",
    "submit_button": "Войти",
    "submitting": "Подключение...",
    "error_title": "Ошибка входа",
    "error_required": "Пожалуйста, заполните все данные подключения",
    "error_invalid": "Подключение не удалось, проверьте адрес и ключ",
    "error_network": "Сетевая ошибка, проверьте подключение или адрес сервера",
    "error_timeout": "Время ожидания истекло, сервер не отвечает",
    "error_unauthorized": "Аутентификация не удалась, неверный ключ управления",
    "error_forbidden": "Доступ запрещён, недостаточно прав",
    "error_not_found": "Неверный адрес сервера или интерфейс управления не включён",
    "error_server": "Внутренняя ошибка сервера, попробуйте позже",
    "error_cors": "Блокировка CORS, проверьте конфигурацию сервера",
    "error_ssl": "Ошибка проверки SSL/TLS сертификата"
  },
  "header": {
    "check_connection": "Проверить подключение",
    "refresh_all": "Обновить всё",
    "logout": "Выйти"
  },
  "connection": {
    "title": "Информация о подключении",
    "server_address": "Адрес сервера:",
    "management_key": "Ключ управления:",
    "status": "Статус подключения:"
  },
  "nav": {
    "dashboard": "Панель",
    "basic_settings": "Основные настройки",
    "api_keys": "API ключи",
    "ai_providers": "Поставщики AI",
    "auth_files": "Файлы аутентификации",
    "oauth": "OAuth вход",
    "quota_management": "Управление квотами",
    "usage_stats": "Статистика использования",
    "config_management": "Панель конфигурации",
    "logs": "Просмотр логов",
    "system_info": "Информация системы"
  },
  "dashboard": {
    "title": "Панель управления",
    "subtitle": "Добро пожаловать в Центр управления CLI Proxy API",
    "openai_providers": "Поставщики OpenAI",
    "quick_actions": "Быстрые действия",
    "current_config": "Текущая конфигурация",
    "management_keys": "Ключи управления",
    "provider_keys_detail": "G:{{gemini}} C:{{codex}} Cl:{{claude}} O:{{openai}}",
    "oauth_credentials": "Учётные данные OAuth",
    "usage_overview": "Обзор использования",
    "total_requests": "Всего запросов",
    "total_tokens": "Всего токенов",
    "rpm_30min": "RPM (30 мин)",
    "tpm_30min": "TPM (30 мин)",
    "models_used": "Используемые модели",
    "no_usage_data": "Данные об использовании отсутствуют",
    "view_detailed_usage": "Просмотреть детальную статистику",
    "edit_settings": "Изменить настройки",
    "available_models": "Доступные модели",
    "available_models_desc": "Всего моделей от всех провайдеров"
  },
  "basic_settings": {
    "title": "Основные настройки",
    "debug_title": "Режим отладки",
    "debug_enable": "Включить режим отладки",
    "proxy_title": "Настройки прокси",
    "proxy_url_label": "URL прокси:",
    "proxy_url_placeholder": "например: socks5://user:pass@127.0.0.1:1080/",
    "proxy_update": "Обновить",
    "proxy_clear": "Очистить",
    "retry_title": "Повтор запросов",
    "retry_count_label": "Количество повторов:",
    "retry_update": "Обновить",
    "quota_title": "Поведение при превышении квоты",
    "quota_switch_project": "Автоматически переключать проект",
    "quota_switch_preview": "Переключаться на preview-модель",
    "usage_statistics_title": "Статистика использования",
    "usage_statistics_enable": "Включить статистику использования",
    "logging_title": "Журналирование",
    "logging_to_file_enable": "Включить журналирование в файл",
    "logs_max_total_size_title": "Лимит размера журналов",
    "logs_max_total_size_label": "Максимальный общий размер журналов (МБ):",
    "logs_max_total_size_hint": "Установите 0, чтобы отключить лимит.",
    "logs_max_total_size_update": "Обновить",
    "request_log_title": "Журналирование запросов",
    "request_log_enable": "Включить журналирование запросов",
    "request_log_warning": "Оставьте выключенным, если подробная диагностика не нужна.",
    "force_model_prefix_enable": "Включить принудительный префикс модели",
    "ws_auth_title": "Аутентификация WebSocket",
    "ws_auth_enable": "Требовать аутентификацию для /ws/*",
    "routing_title": "Стратегия маршрутизации",
    "routing_strategy_label": "Стратегия маршрутизации:",
    "routing_strategy_hint": "round-robin циклически перебирает ключи; fill-first отдаёт приоритет первому доступному ключу.",
    "routing_strategy_update": "Обновить",
    "routing_strategy_round_robin": "round-robin (цикл)",
    "routing_strategy_fill_first": "fill-first (приоритет)"
  },
  "api_keys": {
    "title": "Управление API-ключами",
    "proxy_auth_title": "Ключи аутентификации прокси-сервиса",
    "add_button": "Добавить ключ",
    "empty_title": "API-ключи отсутствуют",
    "empty_desc": "Нажмите кнопку выше, чтобы добавить первый ключ",
    "item_title": "API-ключ",
    "add_modal_title": "Добавление API-ключа",
    "add_modal_key_label": "API-ключ:",
    "add_modal_key_placeholder": "Введите API-ключ",
    "edit_modal_title": "Редактирование API-ключа",
    "edit_modal_key_label": "API-ключ:",
    "delete_confirm": "Удалить этот API-ключ?"
  },
  "ai_providers": {
    "title": "Конфигурация AI-провайдеров",
    "gemini_title": "API-ключи Gemini",
    "gemini_add_button": "Добавить ключ",
    "gemini_empty_title": "Ключи Gemini отсутствуют",
    "gemini_empty_desc": "Нажмите кнопку выше, чтобы добавить первый ключ",
    "gemini_item_title": "Ключ Gemini",
    "gemini_add_modal_title": "Добавление API-ключа Gemini",
    "gemini_add_modal_key_label": "API-ключи:",
    "gemini_add_modal_key_placeholder": "Введите API-ключ Gemini",
    "gemini_add_modal_key_hint": "Добавляйте ключи по одному и при необходимости указывайте базовый URL.",
    "gemini_keys_add_btn": "Добавить ключ",
    "gemini_base_url_label": "Базовый URL (необязательно):",
    "gemini_base_url_placeholder": "например: https://generativelanguage.googleapis.com",
    "gemini_edit_modal_title": "Редактирование API-ключа Gemini",
    "gemini_edit_modal_key_label": "API-ключ:",
    "gemini_delete_confirm": "Удалить этот ключ Gemini?",
    "excluded_models_label": "Исключённые модели (необязательно):",
    "excluded_models_placeholder": "Через запятую или с новой строки, например gemini-1.5-pro, gemini-1.5-flash",
    "excluded_models_hint": "Оставьте пустым, чтобы разрешить все модели; значения автоматически обрезаются и дедуплицируются.",
    "excluded_models_count": "Исключено моделей: {{count}}",
    "prefix_label": "Префикс (необязательно):",
    "prefix_placeholder": "например: team-a",
    "prefix_hint": "Если задано, обращайтесь к моделям как prefix/<model>, чтобы выбрать эту запись.",
    "config_toggle_label": "Включено",
    "config_disabled_badge": "Отключено",
    "codex_title": "Конфигурация Codex API",
    "codex_add_button": "Добавить конфигурацию",
    "codex_empty_title": "Конфигурации Codex отсутствуют",
    "codex_empty_desc": "Нажмите кнопку выше, чтобы добавить первую конфигурацию",
    "codex_item_title": "Конфигурация Codex",
    "codex_add_modal_title": "Добавление конфигурации Codex API",
    "codex_add_modal_key_label": "API-ключ:",
    "codex_add_modal_key_placeholder": "Введите API-ключ Codex",
    "codex_add_modal_url_label": "Базовый URL (обязательно):",
    "codex_add_modal_url_placeholder": "например: https://api.example.com",
    "codex_add_modal_proxy_label": "URL прокси (необязательно):",
    "codex_add_modal_proxy_placeholder": "например: socks5://proxy.example.com:1080",
    "codex_edit_modal_title": "Редактирование конфигурации Codex API",
    "codex_edit_modal_key_label": "API-ключ:",
    "codex_edit_modal_url_label": "Базовый URL (обязательно):",
    "codex_edit_modal_proxy_label": "URL прокси (необязательно):",
    "codex_delete_confirm": "Удалить эту конфигурацию Codex?",
    "claude_title": "Конфигурация Claude API",
    "claude_add_button": "Добавить конфигурацию",
    "claude_empty_title": "Конфигурации Claude отсутствуют",
    "claude_empty_desc": "Нажмите кнопку выше, чтобы добавить первую конфигурацию",
    "claude_item_title": "Конфигурация Claude",
    "claude_add_modal_title": "Добавление конфигурации Claude API",
    "claude_add_modal_key_label": "API-ключ:",
    "claude_add_modal_key_placeholder": "Введите API-ключ Claude",
    "claude_add_modal_url_label": "Базовый URL (необязательно):",
    "claude_add_modal_url_placeholder": "например: https://api.anthropic.com",
    "claude_add_modal_proxy_label": "URL прокси (необязательно):",
    "claude_add_modal_proxy_placeholder": "например: socks5://proxy.example.com:1080",
    "claude_edit_modal_title": "Редактирование конфигурации Claude API",
    "claude_edit_modal_key_label": "API-ключ:",
    "claude_edit_modal_url_label": "Базовый URL (необязательно):",
    "claude_edit_modal_proxy_label": "URL прокси (необязательно):",
    "claude_delete_confirm": "Удалить эту конфигурацию Claude?",
    "claude_models_label": "Пользовательские модели (необязательно):",
    "claude_models_hint": "Оставьте пустым, чтобы разрешить все модели, или добавьте записи name[, alias], чтобы ограничить/переименовать их.",
    "claude_models_add_btn": "Добавить модель",
    "claude_models_count": "Количество моделей",
    "vertex_title": "Конфигурация Vertex API",
    "vertex_add_button": "Добавить конфигурацию",
    "vertex_empty_title": "Конфигурации Vertex отсутствуют",
    "vertex_empty_desc": "Нажмите кнопку выше, чтобы добавить первую конфигурацию",
    "vertex_item_title": "Конфигурация Vertex",
    "vertex_add_modal_title": "Добавление конфигурации Vertex API",
    "vertex_add_modal_key_label": "API-ключ:",
    "vertex_add_modal_key_placeholder": "Введите API-ключ Vertex",
    "vertex_add_modal_url_label": "Базовый URL (обязательно):",
    "vertex_add_modal_url_placeholder": "например: https://example.com/api",
    "vertex_add_modal_proxy_label": "URL прокси (необязательно):",
    "vertex_add_modal_proxy_placeholder": "например: socks5://proxy.example.com:1080",
    "vertex_edit_modal_title": "Редактирование конфигурации Vertex API",
    "vertex_edit_modal_key_label": "API-ключ:",
    "vertex_edit_modal_url_label": "Базовый URL (обязательно):",
    "vertex_edit_modal_proxy_label": "URL прокси (необязательно):",
    "vertex_delete_confirm": "Удалить эту конфигурацию Vertex?",
    "vertex_models_label": "Псевдонимы моделей (требуется псевдоним):",
    "vertex_models_add_btn": "Добавить сопоставление",
    "vertex_models_hint": "Каждому псевдониму требуются исходная модель и псевдоним.",
    "vertex_models_count": "Количество псевдонимов",
    "ampcode_title": "Интеграция Amp CLI (ampcode)",
    "ampcode_modal_title": "Настройка Ampcode",
    "ampcode_upstream_url_label": "Upstream URL",
    "ampcode_upstream_url_placeholder": "например: https://ampcode.com",
    "ampcode_upstream_url_hint": "Необязательно. Оставьте пустым, чтобы использовать URL плоскости управления по умолчанию/обнаруженный автоматически.",
    "ampcode_upstream_api_key_label": "Upstream API-ключ (официальный Amp)",
    "ampcode_upstream_api_key_placeholder": "Введите sk-amp... (оставьте пустым, чтобы сохранить текущий)",
    "ampcode_upstream_api_key_hint": "Необязательно. Пустое значение не изменит текущий официальный ключ Amp. Используйте кнопку ниже, чтобы очистить его.",
    "ampcode_upstream_api_key_current": "Текущий официальный ключ Amp: {{key}}",
    "ampcode_clear_upstream_api_key": "Очистить официальный ключ",
    "ampcode_clear_upstream_api_key_confirm": "Очистить upstream API-ключ Ampcode (официальный Amp)?",
    "ampcode_force_model_mappings_label": "Принудительно применять сопоставления моделей",
    "ampcode_force_model_mappings_hint": "При включении сопоставления переопределяют локальные проверки доступности API-ключей.",
    "ampcode_model_mappings_label": "Сопоставления моделей (из → в)",
    "ampcode_model_mappings_hint": "Переименовывает модели в запросах Amp. Оставьте пустым, чтобы отключить сопоставления.",
    "ampcode_model_mappings_add_btn": "Добавить сопоставление",
    "ampcode_model_mappings_from_placeholder": "исходная модель",
    "ampcode_model_mappings_to_placeholder": "целевая модель",
    "ampcode_model_mappings_count": "Количество сопоставлений",
    "ampcode_mappings_overwrite_confirm": "Не удалось загрузить существующие сопоставления. Продолжение может перезаписать или очистить их. Продолжить?",
    "openai_title": "Совместимые с OpenAI провайдеры",
    "openai_add_button": "Добавить провайдера",
    "openai_empty_title": "Провайдеры OpenAI отсутствуют",
    "openai_empty_desc": "Нажмите кнопку выше, чтобы добавить первого провайдера",
    "openai_add_modal_title": "Добавление совместимого с OpenAI провайдера",
    "openai_add_modal_name_label": "Имя провайдера:",
    "openai_add_modal_name_placeholder": "например: openrouter",
    "openai_add_modal_url_label": "Базовый URL:",
    "openai_add_modal_url_placeholder": "например: https://openrouter.ai/api/v1",
    "openai_add_modal_keys_label": "API-ключи",
    "openai_edit_modal_keys_label": "API-ключи",
    "openai_keys_hint": "Добавляйте каждый ключ отдельно с необязательным URL прокси для удобства.",
    "openai_keys_add_btn": "Добавить ключ",
    "openai_key_placeholder": "ключ вида sk-...",
    "openai_proxy_placeholder": "Необязательный URL прокси (например, socks5://...)",
    "openai_add_modal_models_label": "Список моделей (name[, alias] по строкам):",
    "openai_models_hint": "Пример: gpt-4o-mini или moonshotai/kimi-k2:free, kimi-k2",
    "openai_model_name_placeholder": "Имя модели, например moonshotai/kimi-k2:free",
    "openai_model_alias_placeholder": "Псевдоним модели (необязательно)",
    "openai_models_add_btn": "Добавить модель",
    "openai_models_fetch_button": "Получить через /models",
    "openai_models_fetch_title": "Выбор моделей из /models",
    "openai_models_fetch_hint": "Вызовите эндпоинт /models, используя указанный выше базовый URL, отправив первый API-ключ как Bearer с дополнительными заголовками.",
    "openai_models_fetch_url_label": "URL запроса",
    "openai_models_fetch_refresh": "Обновить",
    "openai_models_fetch_loading": "Получение моделей из /models...",
    "openai_models_fetch_empty": "Модели не вернулись. Проверьте эндпоинт или авторизацию.",
    "openai_models_fetch_error": "Не удалось получить модели",
    "openai_models_fetch_back": "Вернуться к редактированию",
    "openai_models_fetch_apply": "Добавить выбранные модели",
    "openai_models_search_label": "Поиск моделей",
    "openai_models_search_placeholder": "Фильтр по имени, псевдониму или описанию",
    "openai_models_search_empty": "Модели по запросу не найдены. Попробуйте другой ключ.",
    "openai_models_fetch_invalid_url": "Сначала введите корректный базовый URL",
    "openai_models_fetch_added": "Добавлено новых моделей: {{count}}",
    "openai_edit_modal_title": "Редактирование совместимого с OpenAI провайдера",
    "openai_edit_modal_name_label": "Имя провайдера:",
    "openai_edit_modal_url_label": "Базовый URL:",
    "openai_edit_modal_models_label": "Список моделей (name[, alias] по строкам):",
    "openai_delete_confirm": "Удалить этого провайдера OpenAI?",
    "openai_keys_count": "Количество ключей",
    "openai_models_count": "Количество моделей",
    "openai_test_title": "Тест подключения",
    "openai_test_hint": "Отправьте запрос /chat/completions с текущими настройками, чтобы проверить доступность.",
    "openai_test_model_placeholder": "Модель для теста",
    "openai_test_action": "Запустить тест",
    "openai_test_running": "Отправка тестового запроса...",
    "openai_test_timeout": "Тестовый запрос превысил тайм-аут {{seconds}} с",
    "openai_test_success": "Тест выполнен успешно. Модель ответила.",
    "openai_test_failed": "Тест не выполнен",
    "openai_test_select_placeholder": "Выберите из текущих моделей",
    "openai_test_select_empty": "Модели не настроены. Сначала добавьте модели"
  },
  "auth_files": {
    "title": "Управление файлами авторизации",
    "title_section": "Файлы авторизации",
    "description": "Управляйте всеми JSON-файлами авторизации CLI Proxy (например, Qwen, Gemini, Vertex). Загрузка учётных данных сразу включает соответствующую интеграцию AI.",
    "upload_button": "Загрузить файл",
    "delete_all_button": "Удалить всё",
    "empty_title": "Файлы авторизации отсутствуют",
    "empty_desc": "Нажмите кнопку выше, чтобы загрузить первый файл",
    "search_empty_title": "Файлы не найдены",
    "search_empty_desc": "Попробуйте изменить фильтры или очистить строку поиска.",
    "file_size": "Размер",
    "file_modified": "Изменён",
    "download_button": "Скачать",
    "delete_button": "Удалить",
    "delete_confirm": "Удалить файл",
    "delete_all_confirm": "Удалить все файлы авторизации? Это действие нельзя отменить!",
    "delete_filtered_confirm": "Удалить все файлы авторизации {{type}}? Это действие нельзя отменить!",
    "upload_error_json": "Допустимы только файлы JSON",
    "upload_error_size": "Размер файла не может превышать {{maxSize}}",
    "upload_success": "Файл успешно загружен",
    "download_success": "Файл успешно скачан",
    "delete_success": "Файл успешно удалён",
    "delete_all_success": "Удаление завершено",
    "delete_filtered_success": "Удалено файлов {{type}}: {{count}}",
    "delete_filtered_partial": "Удаление файлов {{type}} завершено: успешных {{success}}, ошибок {{failed}}",
    "delete_filtered_none": "Нет файлов {{type}} для удаления при текущем фильтре",
    "files_count": "файлов",
    "pagination_prev": "Предыдущая",
    "pagination_next": "Следующая",
    "pagination_info": "Страница {{current}} / {{total}} · {{count}} файлов",
    "search_label": "Поиск конфигов",
    "search_placeholder": "Фильтр по имени, типу или провайдеру",
    "page_size_label": "На странице",
    "page_size_unit": "элементов",
    "view_mode_paged": "Постранично",
    "view_mode_all": "Показать все",
    "too_many_files_warning": "Слишком много учётных данных. Полный список может повлиять на производительность, используйте постраничный режим.",
    "filter_all": "Все",
    "filter_qwen": "Qwen",
    "filter_gemini": "Gemini",
    "filter_gemini-cli": "GeminiCLI",
    "filter_kimi": "Kimi",
    "filter_aistudio": "AIStudio",
    "filter_claude": "Claude",
    "filter_codex": "Codex",
    "filter_antigravity": "Antigravity",
    "filter_iflow": "iFlow",
    "filter_vertex": "Vertex",
    "filter_empty": "Пусто",
    "filter_unknown": "Другое",
    "type_qwen": "Qwen",
    "type_gemini": "Gemini",
    "type_gemini-cli": "GeminiCLI",
    "type_kimi": "Kimi",
    "type_aistudio": "AIStudio",
    "type_claude": "Claude",
    "type_codex": "Codex",
    "type_antigravity": "Antigravity",
    "type_iflow": "iFlow",
    "type_vertex": "Vertex",
    "type_empty": "Пусто",
    "type_unknown": "Другое",
    "type_virtual": "Виртуальный файл авторизации",
    "models_button": "Модели",
    "models_title": "Поддерживаемые модели",
    "models_loading": "Загрузка списка моделей...",
    "models_empty": "Для этих учётных данных нет доступных моделей",
    "models_empty_desc": "Возможно, учётные данные ещё не загружены сервером или к ним не привязаны модели.",
    "models_unsupported": "Функция не поддерживается в текущей версии",
    "models_unsupported_desc": "Обновите CLI Proxy API до последней версии и повторите попытку",
    "models_excluded_badge": "Отключена",
    "models_excluded_hint": "Эта OAuth-модель отключена",
    "status_toggle_label": "Включено",
    "status_enabled_success": "\"{{name}}\" включён",
    "status_disabled_success": "\"{{name}}\" отключён",
    "prefix_proxy_button": "Изменить prefix/proxy_url",
    "prefix_proxy_loading": "Загрузка учётных данных...",
    "prefix_proxy_source_label": "JSON учётных данных",
    "prefix_label": "prefix",
    "proxy_url_label": "proxy_url",
    "prefix_placeholder": "",
    "proxy_url_placeholder": "socks5://username:password@proxy_ip:port/",
    "prefix_proxy_invalid_json": "Эти учётные данные не являются JSON-объектом и не могут быть изменены.",
    "prefix_proxy_saved_success": "\"{{name}}\" успешно обновлён",
    "card_tools_title": "Инструменты",
    "quota_refresh_single": "Обновить квоту",
    "quota_refresh_hint": "Обновить квоту только для этих учётных данных",
    "quota_refresh_success": "Квота для \"{{name}}\" обновлена",
    "quota_refresh_failed": "Не удалось обновить квоту для \"{{name}}\": {{message}}"
  },
  "antigravity_quota": {
    "title": "Квота Antigravity",
    "empty_title": "Файлы авторизации Antigravity отсутствуют",
    "empty_desc": "Загрузите учётные данные Antigravity, чтобы увидеть оставшуюся квоту.",
    "idle": "Не загружено. Нажмите \"Обновить квоту\".",
    "loading": "Загрузка квоты...",
    "load_failed": "Не удалось загрузить квоту: {{message}}",
    "missing_auth_index": "В файле авторизации отсутствует auth_index",
    "empty_models": "Данные по квоте отсутствуют",
    "refresh_button": "Обновить квоту",
    "fetch_all": "Получить все"
  },
  "codex_quota": {
    "title": "Квота Codex",
    "empty_title": "Файлы авторизации Codex отсутствуют",
    "empty_desc": "Загрузите учётные данные Codex, чтобы увидеть квоту.",
    "idle": "Не загружено. Нажмите \"Обновить квоту\".",
    "loading": "Загрузка квоты...",
    "load_failed": "Не удалось загрузить квоту: {{message}}",
    "missing_auth_index": "В файле авторизации отсутствует auth_index",
    "missing_account_id": "В учётных данных Codex отсутствует идентификатор аккаунта ChatGPT",
    "empty_windows": "Данные по квоте отсутствуют",
    "no_access": "У этих учётных данных нет доступа Codex (план: free).",
    "refresh_button": "Обновить квоту",
    "fetch_all": "Получить все",
    "primary_window": "Лимит на 5 часов",
    "secondary_window": "Недельный лимит",
    "code_review_primary_window": "Лимит code review на 5 часов",
    "code_review_secondary_window": "Недельный лимит code review",
    "plan_label": "Тариф",
    "plan_plus": "Plus",
    "plan_team": "Team",
    "plan_free": "Free"
  },
  "gemini_cli_quota": {
    "title": "Квота Gemini CLI",
    "empty_title": "Файлы авторизации Gemini CLI отсутствуют",
    "empty_desc": "Загрузите учётные данные Gemini CLI, чтобы увидеть оставшуюся квоту.",
    "idle": "Не загружено. Нажмите \"Обновить квоту\".",
    "loading": "Загрузка квоты...",
    "load_failed": "Не удалось загрузить квоту: {{message}}",
    "missing_auth_index": "В файле авторизации отсутствует auth_index",
    "missing_project_id": "В учётных данных Gemini CLI отсутствует идентификатор проекта",
    "empty_buckets": "Данные по квоте отсутствуют",
    "refresh_button": "Обновить квоту",
    "fetch_all": "Получить все",
    "remaining_amount": "Осталось {{count}}"
  },
  "vertex_import": {
    "title": "Вход с Vertex JSON",
    "description": "Загрузите JSON ключа сервисного аккаунта Google, чтобы сохранить его как auth-dir/vertex-<project>.json по тем же правилам, что и помощник CLI vertex-import.",
    "location_label": "Регион (необязательно)",
    "location_placeholder": "us-central1",
    "location_hint": "Оставьте пустым, чтобы использовать регион us-central1 по умолчанию.",
    "file_label": "JSON ключ сервисного аккаунта",
    "file_hint": "Принимаются только JSON-файлы ключей сервисных аккаунтов Google Cloud.",
    "file_placeholder": "Файл не выбран",
    "choose_file": "Выбрать файл",
    "import_button": "Импортировать учётные данные Vertex",
    "file_required": "Сначала выберите файл учётных данных .json",
    "success": "Учётные данные Vertex успешно импортированы",
    "result_title": "Учётные данные сохранены",
    "result_project": "ID проекта",
    "result_email": "Сервисный аккаунт",
    "result_location": "Регион",
    "result_file": "Сохранённый файл"
  },
  "oauth_excluded": {
    "title": "Отключение OAuth-моделей",
    "description": "Отключения моделей по провайдерам отображаются карточками; нажмите карточку, чтобы изменить или удалить. Поддерживаются шаблоны *. Область зависит от фильтра файлов авторизации.",
    "add": "Добавить отключение",
    "add_title": "Добавление отключения моделей для провайдера",
    "edit_title": "Редактирование отключения моделей для {{provider}}",
    "refresh": "Обновить",
    "refreshing": "Обновляется...",
    "provider_label": "Провайдер",
    "provider_auto": "Следовать текущему фильтру",
    "provider_placeholder": "например: gemini-cli",
    "provider_hint": "По умолчанию используется текущий фильтр; выберите существующего провайдера или введите новое имя.",
    "models_label": "Отключаемые модели",
    "models_loading": "Загрузка моделей...",
    "models_unsupported": "Текущая версия CPA не поддерживает загрузку списка моделей.",
    "models_loaded": "Загружено моделей: {{count}}. Отметьте модели, которые нужно отключить.",
    "no_models_available": "Для этого провайдера нет доступных моделей.",
    "save": "Сохранить/обновить",
    "saving": "Сохранение...",
    "save_success": "Отключение моделей обновлено",
    "save_failed": "Не удалось обновить отключение моделей",
    "delete": "Удалить провайдера",
    "delete_confirm": "Удалить отключение моделей для {{provider}}?",
    "delete_success": "Отключение моделей провайдера удалено",
    "delete_failed": "Не удалось удалить отключение моделей",
    "deleting": "Удаление...",
    "no_models": "Отключаемые модели не настроены",
    "model_count": "Отключено моделей: {{count}}",
    "list_empty_all": "Отключений моделей пока нет — используйте \"Добавить отключение\".",
    "list_empty_filtered": "В этой области нет отключённых моделей; нажмите \"Добавить отключение\".",
    "disconnected": "Подключитесь к серверу, чтобы просматривать отключение моделей",
    "load_failed": "Не удалось загрузить отключение моделей",
    "provider_required": "Сначала укажите провайдера",
    "scope_all": "Область: все провайдеры",
    "scope_provider": "Область: {{provider}}",
    "upgrade_required": "Текущая версия CPA не поддерживает отключение OAuth-моделей. Пожалуйста, обновите систему.",
    "upgrade_required_title": "Пожалуйста, обновите CLI Proxy API",
    "upgrade_required_desc": "Текущая версия сервера не поддерживает получение отключения OAuth-моделей. Обновите CPA (CLI Proxy API) до последней версии и повторите попытку."
  },
  "oauth_model_alias": {
    "title": "Псевдонимы моделей OAuth",
    "add": "Добавить псевдоним",
    "add_title": "Добавление псевдонимов моделей провайдера",
    "provider_label": "Провайдер",
    "provider_placeholder": "например: gemini-cli / vertex",
    "provider_hint": "По умолчанию используется текущий фильтр; выберите существующего провайдера или введите новое имя.",
    "model_source_loading": "Загрузка моделей...",
    "model_source_unsupported": "Текущая версия CPA не поддерживает загрузку списка моделей (ручной ввод остаётся доступным).",
    "model_source_loaded": "Загружено моделей: {{count}}. Используйте выпадающий список \"Исходная модель\" или введите своё значение. Сохранение пустого списка удаляет провайдера. Включите \"Сохранить оригинал\", чтобы оставить исходное имя вместе с псевдонимом.",
    "alias_label": "Псевдонимы моделей",
    "alias_name_placeholder": "Исходное имя модели",
    "alias_placeholder": "Псевдоним (обязательно)",
    "alias_fork_label": "Сохранить оригинал",
    "add_alias": "Добавить псевдоним",
    "save": "Сохранить/обновить",
    "save_success": "Псевдонимы моделей обновлены",
    "save_failed": "Не удалось обновить псевдонимы моделей",
    "delete": "Удалить провайдера",
    "delete_confirm": "Удалить псевдонимы моделей для {{provider}}?",
    "delete_link_title": "Убрать сопоставление",
    "delete_link_confirm": "Удалить сопоставление из <code>{{sourceModel}}</code> ({{provider}}) к псевдониму <code>{{alias}}</code>?",
    "delete_alias_title": "Удалить псевдоним",
    "delete_alias_confirm": "Удалить псевдоним <code>{{alias}}</code> и все связанные сопоставления?",
    "delete_success": "Псевдонимы моделей удалены",
    "delete_failed": "Не удалось удалить псевдонимы моделей",
    "no_models": "Псевдонимов нет",
    "model_count": "Количество псевдонимов: {{count}}",
    "list_empty_all": "Псевдонимы ещё не созданы — используйте \"Добавить псевдоним\".",
    "chart_title": "Обзор всех сопоставлений",
    "diagram_providers": "Провайдеры",
    "diagram_source_models": "Исходные модели",
    "diagram_aliases": "Псевдонимы",
    "diagram_expand": "Развернуть",
    "diagram_collapse": "Свернуть",
    "diagram_add_alias": "Добавить псевдоним",
    "diagram_rename": "Переименовать",
    "diagram_rename_alias_title": "Переименование псевдонима",
    "diagram_rename_alias_label": "Новое имя псевдонима",
    "diagram_rename_placeholder": "Введите имя псевдонима...",
    "diagram_delete_link": "Убрать связь {{provider}} / {{name}}",
    "diagram_delete_alias": "Удалить псевдоним",
    "diagram_please_enter_alias": "Введите имя псевдонима.",
    "diagram_alias_exists": "Этот псевдоним уже существует.",
    "diagram_add_alias_title": "Добавление псевдонима",
    "diagram_add_alias_label": "Имя псевдонима",
    "diagram_add_placeholder": "Введите новое имя псевдонима...",
    "diagram_rename_btn": "Переименовать",
    "diagram_add_btn": "Добавить",
    "diagram_settings": "Настройки",
    "diagram_settings_title": "Настройки псевдонима — {{alias}}",
    "diagram_settings_source_title": "Настройки исходной модели",
    "diagram_settings_empty": "Для этого псевдонима ещё нет сопоставлений.",
    "diagram_tap_hint": "На сенсорных устройствах: коснитесь исходной модели, затем псевдонима для связывания.",
    "view_mode": "Режим просмотра",
    "view_mode_diagram": "Диаграмма",
    "view_mode_list": "Список",
    "provider_required": "Сначала укажите провайдера",
    "upgrade_required": "Эта функция требует более новой версии CLI Proxy API (CPA). Обновите систему.",
    "upgrade_required_title": "Пожалуйста, обновите CLI Proxy API",
    "upgrade_required_desc": "Текущая версия сервера не поддерживает API псевдонимов моделей OAuth. Обновите CLI Proxy API (CPA) до последней версии."
  },
  "auth_login": {
    "codex_oauth_title": "Codex OAuth",
    "codex_oauth_button": "Начать вход Codex",
    "codex_oauth_hint": "Выполните вход в сервис Codex через OAuth и автоматически получите/сохраните файлы авторизации.",
    "codex_oauth_url_label": "URL авторизации:",
    "codex_open_link": "Открыть ссылку",
    "codex_copy_link": "Скопировать ссылку",
    "codex_oauth_status_waiting": "Ожидание аутентификации...",
    "codex_oauth_status_success": "Аутентификация успешна!",
    "codex_oauth_status_error": "Ошибка аутентификации:",
    "codex_oauth_start_error": "Не удалось запустить Codex OAuth:",
    "codex_oauth_polling_error": "Не удалось проверить статус аутентификации:",
    "anthropic_oauth_title": "Anthropic OAuth",
    "anthropic_oauth_button": "Начать вход Anthropic",
    "anthropic_oauth_hint": "Выполните вход в сервис Anthropic (Claude) через OAuth и автоматически получите/сохраните файлы авторизации.",
    "anthropic_oauth_url_label": "URL авторизации:",
    "anthropic_open_link": "Открыть ссылку",
    "anthropic_copy_link": "Скопировать ссылку",
    "anthropic_oauth_status_waiting": "Ожидание аутентификации...",
    "anthropic_oauth_status_success": "Аутентификация успешна!",
    "anthropic_oauth_status_error": "Ошибка аутентификации:",
    "anthropic_oauth_start_error": "Не удалось запустить Anthropic OAuth:",
    "anthropic_oauth_polling_error": "Не удалось проверить статус аутентификации:",
    "antigravity_oauth_title": "Antigravity OAuth",
    "antigravity_oauth_button": "Начать вход Antigravity",
    "antigravity_oauth_hint": "Выполните вход в сервис Antigravity (Google) через OAuth и автоматически получите/сохраните файлы авторизации.",
    "antigravity_oauth_url_label": "URL авторизации:",
    "antigravity_open_link": "Открыть ссылку",
    "antigravity_copy_link": "Скопировать ссылку",
    "antigravity_oauth_status_waiting": "Ожидание аутентификации...",
    "antigravity_oauth_status_success": "Аутентификация успешна!",
    "antigravity_oauth_status_error": "Ошибка аутентификации:",
    "antigravity_oauth_start_error": "Не удалось запустить Antigravity OAuth:",
    "antigravity_oauth_polling_error": "Не удалось проверить статус аутентификации:",
    "gemini_cli_oauth_title": "Gemini CLI OAuth",
    "gemini_cli_oauth_button": "Начать вход Gemini CLI",
    "gemini_cli_oauth_hint": "Выполните вход в сервис Google Gemini CLI через OAuth и автоматически получите/сохраните файлы авторизации.",
    "gemini_cli_project_id_label": "Google Cloud Project ID (необязательно):",
    "gemini_cli_project_id_placeholder": "Оставьте пустым, чтобы выбрать первый доступный проект автоматически",
    "gemini_cli_project_id_hint": "Необязательно. Если не указано, система автоматически выберет первый доступный проект вашей учётной записи.",
    "gemini_cli_project_id_required": "Укажите идентификатор проекта Google Cloud.",
    "gemini_cli_oauth_url_label": "URL авторизации:",
    "gemini_cli_open_link": "Открыть ссылку",
    "gemini_cli_copy_link": "Скопировать ссылку",
    "gemini_cli_oauth_status_waiting": "Ожидание аутентификации...",
    "gemini_cli_oauth_status_success": "Аутентификация успешна!",
    "gemini_cli_oauth_status_error": "Ошибка аутентификации:",
    "gemini_cli_oauth_start_error": "Не удалось запустить Gemini CLI OAuth:",
    "gemini_cli_oauth_polling_error": "Не удалось проверить статус аутентификации:",
    "kimi_oauth_title": "Kimi OAuth",
    "kimi_oauth_button": "Начать вход Kimi",
    "kimi_oauth_hint": "Выполните вход в сервис Kimi через поток авторизации устройства и автоматически получите/сохраните файлы авторизации.",
    "kimi_oauth_url_label": "URL авторизации:",
    "kimi_open_link": "Открыть ссылку",
    "kimi_copy_link": "Скопировать ссылку",
    "kimi_oauth_status_waiting": "Ожидание аутентификации...",
    "kimi_oauth_status_success": "Аутентификация успешна!",
    "kimi_oauth_status_error": "Ошибка аутентификации:",
    "kimi_oauth_start_error": "Не удалось запустить Kimi OAuth:",
    "kimi_oauth_polling_error": "Не удалось проверить статус аутентификации:",
    "qwen_oauth_title": "Qwen OAuth",
    "qwen_oauth_button": "Начать вход Qwen",
    "qwen_oauth_hint": "Выполните вход в сервис Qwen через поток авторизации устройства и автоматически получите/сохраните файлы авторизации.",
    "qwen_oauth_url_label": "URL авторизации:",
    "qwen_open_link": "Открыть ссылку",
    "qwen_copy_link": "Скопировать ссылку",
    "qwen_oauth_status_waiting": "Ожидание аутентификации...",
    "qwen_oauth_status_success": "Аутентификация успешна!",
    "qwen_oauth_status_error": "Ошибка аутентификации:",
    "qwen_oauth_start_error": "Не удалось запустить Qwen OAuth:",
    "qwen_oauth_polling_error": "Не удалось проверить статус аутентификации:",
    "oauth_callback_label": "Callback URL",
    "oauth_callback_placeholder": "http://localhost:1455/auth/callback?code=...&state=...",
    "oauth_callback_hint": "Режим удалённого браузера: после перенаправления провайдера на http://localhost:... скопируйте полный URL и отправьте его здесь.",
    "oauth_callback_button": "Отправить Callback URL",
    "oauth_callback_required": "Сначала вставьте полный URL перенаправления.",
    "oauth_callback_success": "Callback URL отправлен. Продолжайте ожидать аутентификацию.",
    "oauth_callback_error": "Не удалось отправить Callback URL:",
    "oauth_callback_upgrade_hint": "Обновите CLI Proxy API или проверьте подключение.",
    "oauth_callback_status_success": "Callback URL отправлен, ожидаем аутентификацию...",
    "oauth_callback_status_error": "Не удалось отправить Callback URL:",
    "missing_state": "Не удалось получить параметр состояния аутентификации",
    "iflow_oauth_title": "iFlow OAuth",
    "iflow_oauth_button": "Начать вход iFlow",
    "iflow_oauth_hint": "Выполните вход в сервис iFlow через OAuth и автоматически получите/сохраните файлы авторизации.",
    "iflow_oauth_url_label": "URL авторизации:",
    "iflow_open_link": "Открыть ссылку",
    "iflow_copy_link": "Скопировать ссылку",
    "iflow_oauth_status_waiting": "Ожидание аутентификации...",
    "iflow_oauth_status_success": "Аутентификация успешна!",
    "iflow_oauth_status_error": "Ошибка аутентификации:",
    "iflow_oauth_start_error": "Не удалось запустить iFlow OAuth:",
    "iflow_oauth_polling_error": "Не удалось проверить статус аутентификации:",
    "iflow_cookie_title": "Вход iFlow по cookie",
    "iflow_cookie_label": "Значение cookie:",
    "iflow_cookie_placeholder": "Введите значение BXAuth, начиная с BXAuth=",
    "iflow_cookie_hint": "Отправьте существующий cookie, чтобы завершить вход без открытия ссылки авторизации; файл учётных данных будет сохранён автоматически.",
    "iflow_cookie_key_hint": "Примечание: сначала создайте ключ на платформе.",
    "iflow_cookie_button": "Отправить вход по cookie",
    "iflow_cookie_status_success": "Вход по cookie выполнен, учётные данные сохранены.",
    "iflow_cookie_status_error": "Ошибка входа по cookie:",
    "iflow_cookie_status_duplicate": "Дублирующая конфигурация:",
    "iflow_cookie_start_error": "Не удалось отправить вход по cookie:",
    "iflow_cookie_config_duplicate": "Такая конфигурация уже существует. Удалите файл и повторите, если хотите перезаписать.",
    "iflow_cookie_required": "Сначала укажите значение cookie.",
    "iflow_cookie_result_title": "Результат входа по cookie",
    "iflow_cookie_result_email": "Аккаунт",
    "iflow_cookie_result_expired": "Истекает",
    "iflow_cookie_result_path": "Путь сохранения",
    "iflow_cookie_result_type": "Тип",
    "remote_access_disabled": "Этот способ входа недоступен при удалённом доступе. Подключитесь с localhost."
  },
  "usage_stats": {
    "title": "Статистика использования",
    "total_requests": "Всего запросов",
    "success_requests": "Успешные запросы",
    "failed_requests": "Неуспешные запросы",
    "total_tokens": "Всего токенов",
    "cached_tokens": "Кэшированные токены",
    "reasoning_tokens": "Токены рассуждений",
    "rpm_30m": "RPM",
    "tpm_30m": "TPM",
    "rate_30m": "Скорость (последние 30 мин)",
    "model_name": "Название модели",
    "model_price_settings": "Настройки стоимости моделей",
    "saved_prices": "Сохранённые цены",
    "requests_trend": "Динамика запросов",
    "tokens_trend": "Динамика токенов",
    "api_details": "Детали API",
    "by_hour": "По часам",
    "by_day": "По дням",
    "refresh": "Обновить",
    "export": "Экспорт",
    "import": "Импорт",
    "export_success": "Экспорт использования скачан",
    "import_success": "Импорт завершён: добавлено {{added}}, пропущено {{skipped}}, всего {{total}}, ошибок {{failed}}",
    "import_invalid": "Недопустимый файл экспорта использования",
    "chart_line_label_1": "Линия 1",
    "chart_line_label_2": "Линия 2",
    "chart_line_label_3": "Линия 3",
    "chart_line_label_4": "Линия 4",
    "chart_line_label_5": "Линия 5",
    "chart_line_label_6": "Линия 6",
    "chart_line_label_7": "Линия 7",
    "chart_line_label_8": "Линия 8",
    "chart_line_label_9": "Линия 9",
    "chart_line_hidden": "Скрыть",
    "chart_line_actions_label": "Линии для отображения",
    "chart_line_add": "Добавить линию",
    "chart_line_all": "Все",
    "chart_line_delete": "Удалить линию",
    "chart_line_hint": "Отображайте до 9 линий моделей одновременно",
    "no_data": "Данные отсутствуют",
    "loading_error": "Не удалось загрузить",
    "api_endpoint": "API-эндпоинт",
    "requests_count": "Количество запросов",
    "tokens_count": "Количество токенов",
    "models": "Статистика моделей",
    "success_rate": "Успешность",
    "total_cost": "Общая стоимость",
    "total_cost_hint": "Основано на настроенной стоимости моделей",
    "model_price_title": "Стоимость моделей",
    "model_price_reset": "Сбросить цены",
    "model_price_model_label": "Модель",
    "model_price_select_placeholder": "Выберите модель",
    "model_price_select_hint": "Модели берутся из детальной статистики использования",
    "model_price_prompt": "Цена prompt",
    "model_price_completion": "Цена completion",
    "model_price_cache": "Цена кэша",
    "model_price_save": "Сохранить цену",
    "model_price_empty": "Цена для моделей не задана",
    "model_price_model": "Модель",
    "model_price_saved": "Цена модели сохранена",
    "model_price_model_required": "Выберите модель для задания цены",
    "cost_trend": "Обзор стоимости",
    "cost_axis_label": "Стоимость ($)",
    "cost_need_price": "Задайте стоимость модели, чтобы увидеть статистику затрат",
    "cost_need_usage": "Нет данных использования для расчёта стоимости",
    "cost_no_data": "Данных о стоимости ещё нет"
  },
  "stats": {
    "success": "Успех",
    "failure": "Сбой"
  },
  "logs": {
    "title": "Просмотр журналов",
    "refresh_button": "Обновить журналы",
    "clear_button": "Очистить журналы",
    "download_button": "Скачать журналы",
    "error_log_button": "Выбрать журнал ошибок",
    "error_logs_modal_title": "Журналы ошибок запросов",
    "error_logs_description": "Выберите файл журнала ошибок запроса для скачивания (создаётся только при отключённом журналировании запросов).",
    "error_logs_request_log_enabled": "Журналирование запросов включено, поэтому этот список всегда будет пустым. Отключите журналирование запросов и обновите список, чтобы просмотреть журналы ошибок.",
    "error_logs_empty": "Файлы журнала ошибок запросов не найдены",
    "error_logs_load_error": "Не удалось загрузить список журналов ошибок",
    "error_logs_size": "Размер",
    "error_logs_modified": "Изменён",
    "error_logs_download": "Скачать",
    "error_log_download_success": "Журнал ошибок успешно скачан",
    "request_log_download_title": "Скачать журнал запросов",
    "request_log_download_confirm": "Скачать журнал запросов с идентификатором {{id}}?",
    "request_log_download_success": "Журнал запросов успешно скачан",
    "empty_title": "Журналы недоступны",
    "empty_desc": "Когда включена опция \"Включить журналирование в файл\", журналы появятся здесь",
    "log_content": "Содержимое журнала",
    "loading": "Загрузка журналов...",
    "load_error": "Не удалось загрузить журналы",
    "clear_confirm": "Очистить все журналы? Действие нельзя отменить!",
    "clear_success": "Журналы успешно очищены",
    "download_success": "Журналы успешно скачаны",
    "auto_refresh": "Автообновление",
    "auto_refresh_enabled": "Автообновление включено",
    "auto_refresh_disabled": "Автообновление выключено",
    "load_more_hint": "Прокрутите вверх, чтобы загрузить ещё",
    "hidden_lines": "Скрыто: {{count}} строк",
    "loaded_lines": "Загружено: {{count}} строк",
    "filtered_lines": "Отфильтровано: {{count}} строк",
    "hide_management_logs": "Скрыть журналы {{prefix}}",
    "show_raw_logs": "Показать исходные журналы",
    "show_raw_logs_hint": "Показать текст журнала без обработки для удобного копирования в несколько строк",
    "search_placeholder": "Искать по содержимому или ключевым словам",
    "search_empty_title": "Подходящих журналов не найдено",
    "search_empty_desc": "Попробуйте другой запрос или сбросьте фильтры.",
    "double_click_copy_hint": "Дважды нажмите, чтобы скопировать строку журнала",
    "copy_success": "Строка журнала скопирована",
    "copy_failed": "Не удалось скопировать",
    "lines": "строк",
    "removed": "Отфильтровано",
    "upgrade_required_title": "Обновите CLI Proxy API",
    "upgrade_required_desc": "Текущая версия сервера не поддерживает просмотр журналов. Обновите CLI Proxy API до последней версии, чтобы использовать эту функцию."
  },
  "config_management": {
    "title": "Панель конфигурации",
    "editor_title": "Файл конфигурации",
    "reload": "Перезагрузить",
    "save": "Сохранить",
    "description": "Редактируйте config.yaml через визуальный редактор или исходный файл",
    "status_idle": "Ожидание действия",
    "status_loading": "Загрузка конфигурации...",
    "status_loaded": "Конфигурация загружена",
    "status_dirty": "Есть несохранённые изменения",
    "status_disconnected": "Подключитесь к серверу, чтобы загрузить конфигурацию",
    "status_load_failed": "Не удалось загрузить",
    "status_saving": "Сохранение конфигурации...",
    "status_saved": "Конфигурация сохранена",
    "status_save_failed": "Не удалось сохранить",
    "save_success": "Конфигурация успешно сохранена",
    "error_yaml_not_supported": "Сервер не вернул YAML. Убедитесь, что доступна конечная точка /config.yaml.",
    "editor_placeholder": "key: value",
    "search_placeholder": "Поиск по конфигурации...",
    "search_button": "Поиск",
    "search_no_results": "Нет результатов",
    "search_prev": "Назад",
    "search_next": "Вперёд",
    "tabs": {
      "visual": "Визуальный редактор",
      "source": "Редактор файла"
    },
    "visual": {
      "sections": {
        "server": {
          "title": "Настройки сервера",
          "description": "Базовые параметры сервера",
          "host": "Адрес хоста",
          "port": "Порт"
        },
        "tls": {
          "title": "Настройка TLS/SSL",
          "description": "Параметры безопасного HTTPS-соединения",
          "enable": "Включить TLS",
          "enable_desc": "Включить безопасное HTTPS-соединение",
          "cert": "Путь к сертификату",
          "key": "Путь к закрытому ключу"
        },
        "remote": {
          "title": "Удалённое управление",
          "description": "Настройки удалённого доступа и панели управления",
          "allow_remote": "Разрешить удалённый доступ",
          "allow_remote_desc": "Разрешить управление с других хостов",
          "disable_panel": "Отключить панель",
          "disable_panel_desc": "Отключить встроенную веб-панель управления",
          "secret_key": "Ключ управления",
          "secret_key_placeholder": "Задайте ключ управления",
          "panel_repo": "Репозиторий панели"
        },
        "auth": {
          "title": "Настройки аутентификации",
          "description": "API-ключи и каталог аутентификации",
          "auth_dir": "Каталог auth-dir",
          "auth_dir_hint": "Путь к каталогу с файлами аутентификации (поддерживает ~)"
        },
        "system": {
          "title": "Системные настройки",
          "description": "Отладка, журналирование, статистика и производительность",
          "debug": "Режим отладки",
          "debug_desc": "Включить подробные отладочные журналы",
          "commercial_mode": "Коммерческий режим",
          "commercial_mode_desc": "Отключить тяжёлое промежуточное ПО для поддержки высокой нагрузки",
          "logging_to_file": "Журналировать в файл",
          "logging_to_file_desc": "Сохранять журналы в файлы",
          "usage_statistics": "Статистика использования",
          "usage_statistics_desc": "Собирать статистику использования",
          "logs_max_size": "Максимальный размер файла журнала (МБ)",
          "usage_retention_days": "Хранить статистику (дней)",
          "usage_retention_hint": "0 означает без ограничений (без очистки)"
        },
        "network": {
          "title": "Сетевые настройки",
          "description": "Параметры прокси, повторов и маршрутизации",
          "proxy_url": "URL прокси",
          "request_retry": "Количество повторов запросов",
          "max_retry_interval": "Максимальный интервал повтора (сек)",
          "routing_strategy": "Стратегия маршрутизации",
          "routing_strategy_hint": "Выберите стратегию подбора учётных данных",
          "strategy_round_robin": "По кругу",
          "strategy_fill_first": "Сначала заполнить",
          "force_model_prefix": "Принудительный префикс модели",
          "force_model_prefix_desc": "Запросы к моделям без префикса используют только учётные данные без префикса",
          "ws_auth": "Аутентификация WebSocket",
          "ws_auth_desc": "Включить аутентификацию WebSocket (/v1/ws)"
        },
        "quota": {
          "title": "Резерв по квоте",
          "description": "Стратегия при превышении квоты",
          "switch_project": "Переключить проект",
          "switch_project_desc": "Автоматически переходить на другой проект при превышении квоты",
          "switch_preview_model": "Переключить на preview-модель",
          "switch_preview_model_desc": "Переключаться на preview-версию модели при превышении квоты"
        },
        "streaming": {
          "title": "Настройки стриминга",
          "description": "Параметры keepalive и повторов запуска",
          "keepalive_seconds": "Период keepalive (сек)",
          "keepalive_hint": "Установите 0 или оставьте поле пустым, чтобы отключить keepalive",
          "bootstrap_retries": "Повторы запуска",
          "bootstrap_hint": "Количество попыток при запуске стрима (до первого байта)",
          "nonstream_keepalive": "Интервал keepalive для нестиминговых ответов (сек)",
          "nonstream_keepalive_hint": "Отправлять пустые строки каждые N секунд для нестиминговых ответов, чтобы избежать простоя; установите 0 или оставьте пустым для отключения",
          "disabled": "Отключено"
        },
        "payload": {
          "title": "Настройки полезной нагрузки",
          "description": "Значения по умолчанию, правила переопределения и фильтрации",
          "default_rules": "Правила по умолчанию",
          "default_rules_desc": "Использовать эти значения, если параметр не указан в запросе",
          "override_rules": "Правила переопределения",
          "override_rules_desc": "Принудительно задавать значения параметров в запросе",
          "filter_rules": "Правила фильтрации",
          "filter_rules_desc": "Предварительно фильтровать тело исходящего запроса через JSON Path, автоматически удалять несоответствующие или лишние параметры (санитизация запроса)"
        }
      },
      "api_keys": {
        "label": "Список API-ключей (api-keys)",
        "add": "Добавить API-ключ",
        "empty": "API-ключи отсутствуют",
        "hint": "Каждая запись — это API-ключ (в том же стиле, что и на странице управления API-ключами)",
        "edit_title": "Редактирование API-ключа",
        "add_title": "Добавление API-ключа",
        "input_label": "API-ключ",
        "input_placeholder": "Вставьте API-ключ",
        "input_hint": "Меняет только содержимое локального файла конфигурации, не синхронизируется с интерфейсом управления API-ключами",
        "error_empty": "Введите API-ключ",
        "error_invalid": "API-ключ содержит недопустимые символы"
      },
      "payload_rules": {
        "rule": "Правило",
        "models": "Применимые модели",
        "model_name": "Название модели",
        "provider_type": "Тип провайдера",
        "add_model": "Добавить модель",
        "params": "Настройки параметров",
        "remove_params": "Удалить параметры",
        "json_path": "JSON Path (например, temperature)",
        "json_path_filter": "JSON Path (gjson/sjson), например generationConfig.thinkingConfig.thinkingBudget",
        "param_type": "Тип параметра",
        "add_param": "Добавить параметр",
        "no_rules": "Правил нет",
        "add_rule": "Добавить правило",
        "value_string": "Строковое значение",
        "value_number": "Числовое значение (например, 0.7)",
        "value_boolean": "true или false",
        "value_json": "Значение JSON",
        "value_default": "Значение"
      },
      "common": {
        "edit": "Изменить",
        "delete": "Удалить",
        "cancel": "Отменить",
        "update": "Обновить",
        "add": "Добавить"
      }
    }
  },
  "quota_management": {
    "title": "Управление квотами",
    "description": "Следите за статусом квот OAuth для учётных данных Antigravity, Codex и Gemini CLI.",
    "refresh_files": "Обновить файлы авторизации",
    "refresh_files_and_quota": "Обновить файлы и квоты"
  },
  "system_info": {
    "title": "Информация о центре управления",
    "about_title": "CLI Proxy API Management Center",
    "connection_status_title": "Статус подключения",
    "api_status_label": "Статус API:",
    "config_status_label": "Статус конфигурации:",
    "last_update_label": "Последнее обновление:",
    "cache_data": "Данные из кэша",
    "real_time_data": "Данные в реальном времени",
    "not_loaded": "Не загружено",
    "seconds_ago": "секунд назад",
    "models_title": "Доступные модели",
    "models_desc": "Показывает ответ /models и автоматически использует сохранённые API-ключи для авторизации.",
    "models_loading": "Загрузка доступных моделей...",
    "models_empty": "Сервис /models не вернул модели",
    "models_error": "Не удалось загрузить список моделей",
    "models_count": "Доступно моделей: {{count}}",
    "version_check_title": "Проверка обновлений",
    "version_check_desc": "Вызовите эндпоинт /latest-version, чтобы сравнить с версией сервера и узнать о доступных обновлениях.",
    "version_current_label": "Текущая версия",
    "version_latest_label": "Последняя версия",
    "version_check_button": "Проверить обновления",
    "version_check_idle": "Нажмите, чтобы проверить обновления",
    "version_checking": "Поиск последней версии...",
    "version_update_available": "Доступно обновление: {{version}}",
    "version_is_latest": "Установлена последняя версия",
    "version_check_error": "Не удалось проверить обновление",
    "version_current_missing": "Версия сервера недоступна; сравнение невозможно",
    "version_unknown": "Неизвестно",
    "quick_links_title": "Быстрые ссылки",
    "quick_links_desc": "Доступ к репозиториям проекта и документации для помощи и обновлений.",
    "link_main_repo": "Основной репозиторий",
    "link_main_repo_desc": "Исходный код основной программы CLI Proxy API",
    "link_webui_repo": "Репозиторий WebUI",
    "link_webui_repo_desc": "Исходный код фронтенда центра управления",
    "link_docs": "Документация",
    "link_docs_desc": "Учебные пособия и руководства по настройке",
    "clear_login_title": "Локальные данные входа",
    "clear_login_desc": "Очистите локально сохранённые данные входа и выполните выход. Настройки стоимости статистики использования сохранятся.",
    "clear_login_button": "Очистить данные входа",
    "clear_login_confirm": "Очистить локальные данные входа и выйти?"
  },
  "notification": {
    "debug_updated": "Настройки отладки обновлены",
    "proxy_updated": "Настройки прокси обновлены",
    "proxy_cleared": "Настройки прокси очищены",
    "retry_updated": "Настройки повторов обновлены",
    "quota_switch_project_updated": "Настройки переключения проектов обновлены",
    "quota_switch_preview_updated": "Настройки переключения на preview-модель обновлены",
    "usage_statistics_updated": "Настройки статистики использования обновлены",
    "logging_to_file_updated": "Настройки журналирования обновлены",
    "logs_max_total_size_updated": "Лимит размера журналов обновлён",
    "request_log_updated": "Настройка журналирования запросов обновлена",
    "force_model_prefix_updated": "Настройка префикса модели обновлена",
    "ws_auth_updated": "Настройка аутентификации WebSocket обновлена",
    "routing_strategy_updated": "Стратегия маршрутизации обновлена",
    "login_storage_cleared": "Локальные данные входа очищены",
    "api_key_added": "API-ключ успешно добавлен",
    "api_key_updated": "API-ключ успешно обновлён",
    "api_key_deleted": "API-ключ успешно удалён",
    "api_key_invalid_chars": "API-ключ может содержать только буквы, цифры и символы",
    "gemini_key_added": "Ключ Gemini успешно добавлен",
    "gemini_key_updated": "Ключ Gemini успешно обновлён",
    "gemini_key_deleted": "Ключ Gemini успешно удалён",
    "gemini_multi_input_required": "Введите хотя бы один ключ Gemini",
    "gemini_multi_failed": "Пакетное добавление Gemini не удалось",
    "gemini_multi_summary": "Пакетное добавление Gemini завершено: добавлено {{success}}, пропущено {{skipped}}, ошибок {{failed}}",
    "codex_config_added": "Конфигурация Codex успешно добавлена",
    "codex_config_updated": "Конфигурация Codex успешно обновлена",
    "codex_config_deleted": "Конфигурация Codex успешно удалена",
    "codex_base_url_required": "Введите базовый URL Codex",
    "claude_config_added": "Конфигурация Claude успешно добавлена",
    "claude_config_updated": "Конфигурация Claude успешно обновлена",
    "claude_config_deleted": "Конфигурация Claude успешно удалена",
    "vertex_config_added": "Конфигурация Vertex успешно добавлена",
    "vertex_config_updated": "Конфигурация Vertex успешно обновлена",
    "vertex_config_deleted": "Конфигурация Vertex успешно удалена",
    "vertex_base_url_required": "Введите базовый URL Vertex",
    "config_enabled": "Конфигурация включена",
    "config_disabled": "Конфигурация выключена",
    "field_required": "Обязательные поля не могут быть пустыми",
    "openai_provider_required": "Заполните имя провайдера и базовый URL",
    "openai_provider_added": "Провайдер OpenAI успешно добавлен",
    "openai_provider_updated": "Провайдер OpenAI успешно обновлён",
    "openai_provider_deleted": "Провайдер OpenAI успешно удалён",
    "ampcode_updated": "Настройки Ampcode обновлены",
    "ampcode_upstream_api_key_cleared": "Переопределение upstream-ключа Ampcode очищено",
    "openai_model_name_required": "Введите имя модели",
    "openai_test_url_required": "Укажите корректный базовый URL перед тестированием",
    "openai_test_key_required": "Добавьте хотя бы один API-ключ перед тестированием",
    "openai_test_model_required": "Выберите модель для теста",
    "data_refreshed": "Данные успешно обновлены",
    "connection_required": "Сначала установите подключение",
    "refresh_failed": "Не удалось обновить",
    "update_failed": "Не удалось обновить",
    "add_failed": "Не удалось добавить",
    "delete_failed": "Не удалось удалить",
    "upload_failed": "Не удалось загрузить",
    "download_failed": "Не удалось скачать",
    "login_failed": "Вход не выполнен",
    "please_enter": "Пожалуйста, введите",
    "please_fill": "Пожалуйста, заполните",
    "provider_name_url": "имя провайдера и базовый URL",
    "api_key": "API-ключ",
    "gemini_api_key": "API-ключ Gemini",
    "codex_api_key": "API-ключ Codex",
    "claude_api_key": "API-ключ Claude",
    "commercial_mode_restart_required": "Режим коммерческого использования изменён. Перезапустите сервис, чтобы применить изменения",
    "copy_failed": "Не удалось скопировать",
    "link_copied": "Ссылка скопирована в буфер обмена"
  },
  "language": {
    "switch": "Язык",
    "chinese": "中文",
    "english": "English",
    "russian": "Русский"
  },
  "theme": {
    "switch": "Тема",
    "light": "Светлая",
    "dark": "Тёмная",
    "switch_to_light": "Переключиться на светлую тему",
    "switch_to_dark": "Переключиться на тёмную тему",
    "auto": "Следовать системе"
  },
  "sidebar": {
    "toggle_expand": "Развернуть боковую панель",
    "toggle_collapse": "Свернуть боковую панель"
  },
  "footer": {
    "api_version": "Версия CLI Proxy API",
    "build_date": "Время сборки",
    "version": "Версия интерфейса управления",
    "author": "Автор"
  }
}
