Files
Cli-Proxy-API-Management-Ce…/src/i18n/locales/ru.json
T

1557 lines
110 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"common": {
"login": "Войти",
"logout": "Выйти",
"back": "Назад",
"cancel": "Отмена",
"confirm": "Подтвердить",
"leave": "Уйти",
"stay": "Остаться",
"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": "Прокси",
"priority": "Приоритет",
"alias": "Псевдоним",
"failure": "Сбой",
"unknown_error": "Неизвестная ошибка",
"quota_update_required": "Пожалуйста, обновите CPA или проверьте наличие обновлений",
"quota_check_credential": "Пожалуйста, проверьте статус учётных данных",
"copy": "Копировать",
"expand": "Развернуть",
"collapse": "Свернуть",
"status": "Статус",
"action": "Действие",
"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": "Псевдоним модели (необязательно)",
"invalid_provider_index": "Неверный индекс провайдера.",
"unsaved_changes_title": "Несохранённые изменения",
"unsaved_changes_message": "У вас есть несохранённые изменения. Если вы уйдёте, они будут потеряны. Выйти?"
},
"title": {
"main": "Центр управления CLI Proxy API",
"login": "Центр управления CLI Proxy API",
"abbr": "CPAMC"
},
"splash": {
"title": "CLI Proxy API",
"subtitle": "Центр управления"
},
"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_backend_detail": "Ответ сервера",
"error_required": "Пожалуйста, заполните все данные подключения",
"error_invalid": "Подключение не удалось, проверьте адрес сервера, Management API и ключ управления",
"error_network": "Сетевая ошибка, проверьте подключение или адрес сервера",
"error_timeout": "Время ожидания истекло, сервер не отвечает",
"error_unauthorized": "Аутентификация не удалась, ключ управления отсутствует или неверен",
"error_forbidden": "Доступ запрещён: удалённое управление отключено, ключ управления не настроен или IP временно заблокирован",
"error_not_found": "Management API не найден, проверьте, что адрес указывает на backend CLIProxyAPI",
"error_server": "Backend не смог обработать запрос управления, проверьте журналы сервера",
"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": "Управление квотами",
"plugins": "Плагины",
"plugin_store": "Магазин плагинов",
"config_management": "Панель конфигурации",
"logs": "Просмотр логов",
"system_info": "Информация системы"
},
"nav_groups": {
"operate": "Работа",
"gateway": "Шлюз",
"observe": "Наблюдение",
"control": "Управление"
},
"nav_meta": {
"dashboard": "Обзор работы",
"ai_providers": "Маршрутизация моделей",
"auth_files": "Файлы и учётные данные",
"oauth": "Авторизация OAuth",
"quota_management": "API ключи и лимиты",
"plugins": "Переключатели и ресурсы плагинов",
"plugin_store": "Поиск и установка плагинов",
"logs": "Трассировка запросов",
"config_management": "Базовая конфигурация шлюза",
"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}} V:{{vertex}} O:{{openai}}",
"oauth_credentials": "Учётные данные OAuth",
"edit_settings": "Изменить настройки",
"routing_strategy": "Стратегия маршрутизации",
"available_models": "Доступные модели",
"available_models_desc": "Всего моделей от всех провайдеров",
"welcome_back": "С возвращением",
"greeting_morning": "Доброе утро",
"greeting_afternoon": "Добрый день",
"greeting_evening": "Добрый вечер",
"greeting_night": "Доброй ночи",
"caring_morning": "Новый день — начнём продуктивно.",
"caring_afternoon": "Уверенный прогресс — отличная работа.",
"caring_evening": "День подходит к концу — финальный рывок.",
"caring_night": "Поздняя работа? Не забудьте отдохнуть.",
"system_overview": "Обзор системы"
},
"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-модель",
"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-ключ?"
},
"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": "Изменён",
"health_status_label": "Состояние",
"health_status_healthy": "Нормально",
"health_status_warning": "Предупреждение",
"health_status_disabled": "Отключено",
"health_status_unknown": "Неизвестно",
"health_status_no_message": "Нет сообщения о статусе",
"last_refresh_label": "Последнее обновление",
"refresh_not_available": "Н/Д",
"refresh_just_now": "Только что",
"download_button": "Скачать",
"delete_button": "Удалить",
"delete_confirm": "Удалить файл",
"delete_all_confirm": "Удалить все файлы авторизации? Это действие нельзя отменить!",
"delete_filtered_confirm": "Удалить все файлы авторизации {{type}}? Это действие нельзя отменить!",
"delete_problem_button": "Удалить проблемные",
"delete_problem_button_with_type": "Удалить проблемные файлы {{type}}",
"delete_problem_confirm": "Удалить все проблемные файлы авторизации? Это действие нельзя отменить!",
"delete_problem_filtered_confirm": "Удалить все проблемные файлы авторизации {{type}}? Это действие нельзя отменить!",
"delete_filtered_result_button": "Удалить результаты фильтра",
"delete_filtered_result_confirm": "Удалить файлы авторизации из текущих результатов фильтра? Это действие нельзя отменить!",
"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}} для удаления при текущем фильтре",
"delete_problem_success": "Удалено проблемных файлов авторизации: {{count}}",
"delete_problem_filtered_success": "Удалено проблемных файлов авторизации {{type}}: {{count}}",
"delete_problem_partial": "Удаление проблемных файлов авторизации завершено: успешных {{success}}, ошибок {{failed}}",
"delete_problem_filtered_partial": "Удаление проблемных файлов авторизации {{type}} завершено: успешных {{success}}, ошибок {{failed}}",
"delete_problem_none": "Нет проблемных файлов авторизации для удаления при текущем фильтре",
"delete_problem_filtered_none": "Нет проблемных файлов авторизации {{type}} для удаления при текущем фильтре",
"delete_filtered_result_success": "Удалено файлов авторизации из результатов фильтра: {{count}}",
"delete_filtered_result_partial": "Удаление результатов фильтра завершено: успешных {{success}}, ошибок {{failed}}",
"delete_filtered_result_none": "Нет файлов авторизации для удаления в текущих результатах фильтра",
"files_count": "файлов",
"pagination_prev": "Предыдущая",
"pagination_next": "Следующая",
"pagination_info": "Страница {{current}} / {{total}} · {{count}} файлов",
"search_label": "Поиск конфигов",
"search_placeholder": "Фильтр по имени, типу или провайдеру, поддерживается wildcard *",
"problem_filter_label": "Фильтр проблем",
"problem_filter_only": "Показывать только проблемные учётные данные",
"disabled_filter_only": "Показывать только отключённые учётные данные",
"display_options_label": "Параметры отображения",
"compact_mode_label": "Компактный режим",
"sort_label": "Сортировка",
"sort_default": "По умолчанию",
"sort_az": "A-Z Имя",
"sort_priority": "Приоритет",
"priority_display": "Приоритет",
"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_xai": "xAI",
"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_xai": "xAI",
"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}}\" отключён",
"batch_status_success": "{{count}} файлов обновлено",
"batch_status_partial": "{{success}} обновлено, {{failed}} не удалось",
"batch_delete_title": "Удалить выбранные файлы",
"batch_delete_confirm": "Удалить {{count}} файлов?",
"batch_selected": "{{count}} выбрано",
"batch_select_all": "Выбрать все",
"batch_select_page": "Выбрать страницу",
"batch_select_filtered": "Выбрать по фильтру",
"batch_invert_page": "Инвертировать страницу",
"batch_deselect": "Отменить",
"batch_download": "Скачать выбранные",
"batch_download_success": "Запущена загрузка {{count}} файлов",
"batch_download_partial": "Загрузка завершена: успешно {{success}}, ошибок {{failed}}",
"batch_enable": "Включить",
"batch_disable": "Отключить",
"prefix_proxy_button": "Просмотр / редактирование файла авторизации",
"auth_field_editor_title": "Просмотр / редактирование файла авторизации - {{name}}",
"prefix_proxy_loading": "Загрузка файла авторизации...",
"prefix_proxy_info_label": "Информация о файле авторизации (info)",
"prefix_proxy_source_label": "JSON файла авторизации (предпросмотр)",
"prefix_proxy_invalid_content_label": "Скачанное содержимое (сокращено)",
"prefix_label": "Префикс (prefix)",
"proxy_url_label": "URL прокси (proxy_url)",
"prefix_placeholder": "",
"proxy_url_placeholder": "socks5://username:password@proxy_ip:port/",
"priority_label": "Приоритет (priority)",
"priority_placeholder": "например: 10 или -1",
"priority_hint": "Только целые числа. Некорректные значения игнорируются. Чем больше число, тем выше приоритет.",
"codex_websockets_label": "WebSockets (websockets)",
"codex_websockets_hint": "Включает websocket-транспорт Responses API для этих учётных данных Codex.",
"excluded_models_label": "Исключённые модели (excluded_models)",
"excluded_models_placeholder": "Через запятую или с новой строки, например: model-a, gpt-5-*, *-preview",
"excluded_models_hint": "Сохраняется как массив; значения trim/нижний регистр/без дублей/с сортировкой.",
"disable_cooling_label": "Отключение охлаждения (disable_cooling)",
"disable_cooling_placeholder": "например: true / false / 1 / 0",
"disable_cooling_hint": "Поддерживает boolean, числа 0/не 0 и строки true/false/1/0; непарсируемые значения игнорируются.",
"note_label": "Заметка (note)",
"note_placeholder": "Введите заметку, например: аккаунт Ивана",
"note_hint": "Необязательно. Используется для описания назначения или владельца учётных данных; оставьте пустым, чтобы не записывать.",
"note_display": "Заметка",
"prefix_proxy_invalid_json": "Этот файл авторизации не является JSON-объектом, поэтому поля нельзя редактировать.",
"prefix_proxy_html_challenge": "Скачанное содержимое является HTML-страницей проверки, а не 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": "Получить все"
},
"claude_quota": {
"title": "Квота Claude",
"empty_title": "Файлы авторизации Claude OAuth отсутствуют",
"empty_desc": "Войдите через Claude OAuth, чтобы увидеть квоту.",
"idle": "Не загружено. Нажмите \"Обновить квоту\".",
"loading": "Загрузка квоты...",
"load_failed": "Не удалось загрузить квоту: {{message}}",
"missing_auth_index": "В файле авторизации отсутствует auth_index",
"empty_windows": "Данные по квоте отсутствуют",
"refresh_button": "Обновить квоту",
"fetch_all": "Получить все",
"five_hour": "Лимит на 5 часов",
"seven_day": "Лимит на 7 дней",
"seven_day_oauth_apps": "7 дней OAuth приложения",
"seven_day_opus": "7 дней Opus",
"seven_day_sonnet": "7 дней Sonnet",
"seven_day_cowork": "7 дней Cowork",
"iguana_necktie": "Iguana Necktie",
"extra_usage_label": "Дополнительное использование",
"plan_label": "План",
"plan_unknown": "Неизвестно",
"plan_free": "Free",
"plan_pro": "Pro",
"plan_max": "Max",
"plan_max5": "Max 5x",
"plan_max20": "Max 20x",
"plan_team": "Team"
},
"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": "Недельный лимит",
"team_secondary_window": "Месячный лимит",
"code_review_primary_window": "Лимит code review на 5 часов",
"code_review_secondary_window": "Недельный лимит code review",
"code_review_team_secondary_window": "Месячный лимит code review",
"additional_primary_window": "{{name}}: лимит на 5 часов",
"additional_secondary_window": "{{name}}: недельный лимит",
"additional_team_secondary_window": "{{name}}: месячный лимит",
"plan_label": "Тариф",
"expires_label": "Истекает",
"plan_plus": "Plus",
"plan_team": "Team",
"plan_free": "Free",
"plan_pro": "Pro 20x",
"plan_prolite": "Pro 5x"
},
"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}}",
"tier_label": "Уровень",
"tier_free": "Бесплатный",
"tier_legacy": "Устаревший",
"tier_standard": "Стандартный",
"tier_pro": "Pro",
"tier_ultra": "Ultra",
"credit_label": "Google One AI кредиты",
"credit_amount": "{{count}} кредитов"
},
"kimi_quota": {
"title": "Квота Kimi",
"empty_title": "Файлы авторизации Kimi отсутствуют",
"empty_desc": "Загрузите учётные данные Kimi, чтобы увидеть оставшуюся квоту.",
"idle": "Не загружено. Нажмите \"Обновить квоту\".",
"loading": "Загрузка квоты...",
"load_failed": "Не удалось загрузить квоту: {{message}}",
"missing_auth_index": "В файле авторизации отсутствует auth_index",
"empty_data": "Данные по квоте отсутствуют",
"refresh_button": "Обновить квоту",
"fetch_all": "Получить все",
"weekly_limit": "Недельный лимит",
"limit_window": "Лимит {{duration}}",
"limit_index": "Лимит #{{index}}",
"reset_hint": "сброс через {{hint}}"
},
"xai_quota": {
"title": "Квота Grok",
"empty_title": "Файлы авторизации xAI/Grok отсутствуют",
"empty_desc": "Войдите через xAI OAuth, чтобы увидеть квоту Grok.",
"idle": "Не загружено. Нажмите \"Обновить квоту\".",
"loading": "Загрузка квоты...",
"load_failed": "Не удалось загрузить квоту: {{message}}",
"missing_auth_index": "В файле авторизации отсутствует auth_index",
"empty_data": "Данные по квоте отсутствуют",
"refresh_button": "Обновить квоту",
"fetch_all": "Получить все",
"monthly_credits": "Месячные кредиты",
"pay_as_you_go_label": "Оплата по факту",
"pay_as_you_go_enabled": "Включено, лимит {{cap}}",
"pay_as_you_go_disabled": "Отключено"
},
"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": "Псевдоним (обязательно)",
"duplicate_alias": "Каждый псевдоним этого провайдера должен быть уникальным.",
"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": "Необязательно. Если не указано, система автоматически выберет первый доступный проект вашей учётной записи. Введите ALL, чтобы получить все проекты.",
"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": "Не удалось проверить статус аутентификации:",
"xai_oauth_title": "xAI OAuth",
"xai_oauth_button": "Начать вход xAI",
"xai_oauth_hint": "Выполните вход в xAI Grok через OAuth и автоматически получите/сохраните файлы авторизации.",
"xai_oauth_url_label": "URL авторизации:",
"xai_open_link": "Открыть ссылку",
"xai_copy_link": "Скопировать ссылку",
"xai_oauth_status_waiting": "Ожидание аутентификации...",
"xai_oauth_status_success": "Аутентификация успешна!",
"xai_oauth_status_error": "Ошибка аутентификации:",
"xai_oauth_start_error": "Не удалось запустить xAI OAuth:",
"xai_oauth_polling_error": "Не удалось проверить статус аутентификации:",
"xai_callback_label": "Callback URL или код",
"xai_callback_placeholder": "Вставьте код со страницы Grok или полный callback URL",
"xai_callback_hint": "Grok иногда показывает только код на странице. Вставьте этот код напрямую, приложение автоматически отправит его как http://127.0.0.1:56121/callback?...",
"xai_callback_required": "Сначала вставьте код со страницы Grok или полный callback URL.",
"xai_callback_state_missing": "Отсутствует state для этого входа xAI. Запустите вход xAI заново и затем отправьте код.",
"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": "Не удалось получить параметр состояния аутентификации",
"login_another_account": "Войти в другой аккаунт",
"view_auth_files": "Открыть файлы авторизации",
"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": "Не удалось проверить статус аутентификации:",
"remote_access_disabled": "Этот способ входа недоступен при удалённом доступе. Подключитесь с localhost."
},
"stats": {
"success": "Успех",
"failure": "Сбой"
},
"status_bar": {
"success_short": "✓",
"failure_short": "✗",
"no_requests": "Нет запросов"
},
"service_health": {
"title": "Состояние сервиса",
"window": "Последние 7 дней",
"oldest": "Старые",
"newest": "Новые"
},
"logs": {
"title": "Просмотр журналов",
"runtime_unknown": "Текущий режим: определяется",
"runtime_cpa": "Текущий режим: CPA",
"runtime_home": "Текущий режим: Home",
"refresh_button": "Обновить журналы",
"clear_button": "Очистить журналы",
"fullscreen_button": "На весь экран",
"exit_fullscreen_button": "Выйти из полноэкранного режима",
"download_button": "Скачать журналы",
"error_log_button": "Выбрать журнал ошибок",
"error_logs_modal_title": "Журналы ошибок запросов",
"error_logs_description": "Выберите файл журнала ошибок запроса, чтобы открыть или скачать его (создаётся только при отключённом журналировании запросов).",
"error_logs_home_unavailable": "В режиме Home смотрите журналы базы данных на вкладке содержимого. Файлы ошибок запросов относятся только к файловым журналам CPA.",
"error_logs_request_log_enabled": "Журналирование запросов включено, поэтому этот список всегда будет пустым. Отключите журналирование запросов и обновите список, чтобы просмотреть журналы ошибок.",
"error_logs_empty": "Файлы журнала ошибок запросов не найдены",
"error_logs_load_error": "Не удалось загрузить список журналов ошибок",
"error_logs_size": "Размер",
"error_logs_modified": "Изменён",
"error_logs_open": "Открыть",
"error_logs_download": "Скачать",
"error_log_view_title": "Подробности журнала ошибок запроса",
"error_log_open_failed": "Не удалось открыть журнал ошибок",
"error_log_empty_content": "Этот журнал ошибок пуст",
"error_log_copy_success": "Содержимое журнала ошибок скопировано",
"error_log_download_success": "Журнал ошибок успешно скачан",
"request_log_download_title": "Скачать журнал запросов",
"request_log_download_confirm": "Скачать журнал запросов с идентификатором {{id}}?",
"request_log_download_success": "Журнал запросов успешно скачан",
"empty_title": "Журналы недоступны",
"empty_desc": "Когда включена опция \"Включить журналирование в файл\", журналы появятся здесь",
"cpa_file_logging_required": "Подключён режим CPA. Для просмотра журналов сначала включите запись журналов в файл.",
"cpa_file_logging_required_title": "Требуется файловое журналирование",
"cpa_file_logging_required_desc": "CPA читает этот журнал из локальных файлов. Включите logging-to-file в конфигурации и обновите страницу.",
"file_logging_required": "Этот endpoint журналов требует включить запись журналов в файл перед чтением файловых журналов.",
"file_logging_required_title": "Требуется файловое журналирование",
"file_logging_required_desc": "Этот endpoint журналов читает локальные файлы. Включите logging-to-file в конфигурации и обновите страницу.",
"home_clear_unavailable": "Журналы Home загружаются из базы данных и не могут быть очищены здесь.",
"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": "Искать по содержимому или ключевым словам",
"filter_panel_title": "Структурные фильтры",
"filter_panel_expand": "Развернуть структурные фильтры",
"filter_panel_collapse": "Свернуть структурные фильтры",
"filter_panel_active_count": "Активно: {{count}}",
"filter_method": "Метод",
"filter_status": "Статус",
"filter_path": "Путь",
"filter_path_empty": "Нет доступных путей",
"filter_status_2xx": "2xx",
"filter_status_3xx": "3xx",
"filter_status_4xx": "4xx",
"filter_status_5xx": "5xx",
"clear_filters": "Очистить фильтры",
"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": "Перезагрузить",
"reload_confirm_message": "Перезагрузка отбросит ваши несохранённые изменения. Продолжить?",
"save": "Сохранить",
"description": "Редактируйте config.yaml через визуальный редактор или исходный файл",
"status_idle": "Ожидание действия",
"status_loading": "Загрузка конфигурации...",
"status_loading_short": "Загрузка",
"status_loaded": "Конфигурация загружена",
"status_loaded_short": "Загружено",
"status_dirty": "Есть несохранённые изменения",
"status_dirty_short": "Несохранено",
"status_disconnected": "Подключитесь к серверу, чтобы загрузить конфигурацию",
"status_disconnected_short": "Нет связи",
"status_load_failed": "Не удалось загрузить",
"status_load_failed_short": "Ошибка",
"status_saving": "Сохранение конфигурации...",
"status_saving_short": "Сохранение",
"status_saved": "Конфигурация сохранена",
"status_save_failed": "Не удалось сохранить",
"save_success": "Конфигурация успешно сохранена",
"error_yaml_not_supported": "Сервер не вернул YAML. Убедитесь, что доступна конечная точка /config.yaml.",
"visual_mode_unavailable": "Визуальный редактор недоступен, пока не исправлен синтаксис YAML",
"visual_mode_unavailable_short": "Ошибка YAML",
"validation_blocked_short": "Есть ошибки",
"visual_mode_unavailable_detail": "Визуальный редактор недоступен, потому что в конфигурации есть некорректный YAML: {{message}}",
"visual_mode_save_blocked": "Нельзя сохранять из визуального режима, пока не исправлен синтаксис YAML",
"visual_mode_latest_yaml_invalid": "Последняя конфигурация на сервере содержит некорректный YAML. Проверьте её в режиме исходника перед сохранением визуальных изменений: {{message}}",
"editor_placeholder": "key: value",
"search_placeholder": "Поиск по конфигурации...",
"search_button": "Поиск",
"search_no_results": "Нет результатов",
"search_prev": "Назад",
"search_next": "Вперёд",
"diff": {
"title": "Обзор изменений",
"current": "Текущая",
"modified": "Изменённая",
"confirm": "Подтвердить",
"no_changes": "Изменений не обнаружено"
},
"tabs": {
"visual": "Визуальный редактор",
"source": "Редактор файла"
},
"visual": {
"notice": "Визуальный режим охватывает основные поля. Остальные параметры config.yaml по-прежнему нужно проверять или редактировать в режиме исходника.",
"quick_jump": "Быстрый переход",
"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": "Отключить встроенную веб-панель управления",
"disable_auto_update_panel": "Отключить автообновление панели",
"disable_auto_update_panel_desc": "Скачивать панель при первом отсутствии, но не обновлять её автоматически с GitHub",
"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": "Сохранять журналы в файлы",
"plugins_enabled": "Включить систему плагинов",
"plugins_enabled_desc": "Включает загрузку стандартных dynamic-library плагинов; отдельные экземпляры управляются на странице плагинов",
"plugin_store_sources": "Сторонние источники плагинов",
"plugin_store_sources_desc": "Добавляет registry-источники магазина плагинов; встроенный официальный источник всегда сохраняется",
"plugin_store_sources_label": "URL registry источника плагинов (plugins.store-sources)",
"plugin_store_sources_placeholder": "https://example.com/cliproxy-plugins/registry.json",
"plugin_store_sources_hint": "Один URL registry.json в строке. Пустые строки отфильтровываются при сохранении",
"logs_max_size": "Максимальный размер файла журнала (МБ)",
"error_logs_max_files": "Файлов журнала ошибок",
"usage_statistics_enabled": "Включить статистику использования в памяти",
"usage_statistics_enabled_desc": "Агрегировать статистику использования запросов в памяти",
"redis_usage_retention": "Хранение очереди Redis usage (сек)",
"redis_usage_retention_hint": "Время хранения вывода RESP LPOP/RPOP в памяти, максимум 3600 секунд",
"antigravity_signature_cache": "Включить кэш подписей Antigravity",
"antigravity_signature_cache_desc": "Предпочитать и проверять кэшированные подписи thinking-блоков",
"antigravity_signature_strict": "Строгая проверка bypass-подписи",
"antigravity_signature_strict_desc": "Применяется только при отключённом кэше подписей; проверяет полное дерево Claude protobuf"
},
"headers": {
"title": "Заголовки по умолчанию",
"description": "Заголовки по умолчанию для OAuth-запросов Claude и Codex, когда клиент их не отправил",
"claude_title": "Claude Header Defaults",
"codex_title": "Codex Header Defaults",
"user_agent": "User-Agent",
"package_version": "Package Version",
"runtime_version": "Runtime Version",
"os": "OS",
"arch": "Arch",
"timeout": "Timeout",
"stabilize_device": "Стабилизировать профиль устройства",
"stabilize_device_desc": "Фиксировать OS/Arch и стабилизировать программный отпечаток для учётных данных/API-ключа",
"beta_features": "Beta Features",
"codex_identity_confuse": "Codex identity-confuse",
"codex_identity_confuse_desc": "При fill-first routing или session affinity переопределяет Codex prompt_cache_key и installation identity под выбранную auth-запись"
},
"network": {
"title": "Сетевые настройки",
"description": "Параметры прокси, повторов и маршрутизации",
"proxy_url": "URL прокси",
"request_retry": "Количество повторов запросов",
"max_retry_credentials": "Максимум учётных данных для повторов",
"max_retry_credentials_hint": "Оставьте пустым, чтобы не задавать поле. Значение 0 сохраняет legacy-поведение и позволяет перебрать все доступные учётные данные.",
"max_retry_interval": "Максимальный интервал повтора (сек)",
"auth_auto_refresh_workers": "Workers автообновления auth",
"auth_auto_refresh_workers_hint": "Если больше 0, переопределяет число workers по умолчанию (16)",
"disable_image_generation": "Отключить генерацию изображений",
"disable_image_generation_hint": "false включает; true отключает везде; chat отключает только инъекцию на не-image endpoints",
"disable_image_generation_false": "false (включено)",
"disable_image_generation_true": "true (отключено везде)",
"disable_image_generation_chat": "chat (только отключить chat-инъекцию)",
"gpt_image_2_base_model": "Базовая модель GPT Image 2",
"gpt_image_2_base_model_hint": "Основная модель для проксирования gpt-image-2 image-запросов; если пусто или неверно, backend использует значение по умолчанию",
"routing_strategy": "Стратегия маршрутизации",
"routing_strategy_hint": "Выберите стратегию подбора учётных данных",
"strategy_round_robin": "По кругу",
"strategy_fill_first": "Сначала заполнить",
"session_affinity_ttl": "TTL привязки сессии",
"force_model_prefix": "Принудительный префикс модели",
"force_model_prefix_desc": "Запросы к моделям без префикса используют только учётные данные без префикса",
"passthrough_headers": "Передавать upstream-заголовки",
"passthrough_headers_desc": "Передавать отфильтрованные upstream-заголовки ответа downstream-клиентам",
"disable_cooling": "Отключить cooldown",
"disable_cooling_desc": "Глобально отключить окна охлаждения auth/model после ошибок",
"session_affinity": "Маршрутизация с привязкой к сессии",
"ws_auth": "Аутентификация WebSocket",
"ws_auth_desc": "Включить аутентификацию WebSocket (/v1/ws)",
"enable_gemini_cli_endpoint": "Включить внутренний endpoint Gemini CLI",
"enable_gemini_cli_endpoint_desc": "Включить совместимые endpoints /v1internal:*"
},
"quota": {
"title": "Резерв по квоте",
"description": "Стратегия при превышении квоты",
"switch_project": "Переключить проект",
"switch_project_desc": "Автоматически переходить на другой проект при превышении квоты",
"switch_preview_model": "Переключить на preview-модель",
"switch_preview_model_desc": "Переключаться на preview-версию модели при превышении квоты",
"antigravity_credits": "Использовать Antigravity Credits"
},
"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": "Значения по умолчанию, raw JSON-правила, правила переопределения и фильтрации",
"default_rules": "Правила по умолчанию",
"default_rules_desc": "Использовать эти значения, если параметр не указан в запросе",
"default_raw_rules": "Raw-правила по умолчанию",
"default_raw_rules_desc": "Если параметр отсутствует, записывать эти значения как raw JSON-фрагменты, например true, 123, \"high\" или {\"type\":\"object\"}",
"override_rules": "Правила переопределения",
"override_rules_desc": "Принудительно задавать значения параметров в запросе",
"override_raw_rules": "Raw-правила переопределения",
"override_raw_rules_desc": "Всегда перезаписывать значения как raw JSON-фрагменты; полезно для response_format, схем и других сложных полей",
"filter_rules": "Правила фильтрации",
"filter_rules_desc": "Предварительно фильтровать тело исходящего запроса через JSON Path, автоматически удалять несоответствующие или лишние параметры (санитизация запроса)"
}
},
"api_keys": {
"label": "Список API-ключей (api-keys)",
"add": "Добавить API-ключ",
"generate": "Сгенерировать",
"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": "Тип параметра",
"param_value": "Значение параметра",
"add_param": "Добавить параметр",
"no_rules": "Правил нет",
"add_rule": "Добавить правило",
"provider_default": "По умолчанию",
"provider_openai": "OpenAI",
"provider_openai_response": "OpenAI Response",
"provider_responses": "Responses",
"provider_gemini": "Gemini",
"provider_claude": "Claude",
"provider_codex": "Codex",
"provider_antigravity": "Antigravity",
"advanced": "Дополнительно",
"hide_advanced": "Скрыть дополнительно",
"from_protocol": "Исходный протокол (from-protocol)",
"headers": "Совпадения заголовков запроса",
"header_name": "Имя заголовка",
"header_value": "Значение заголовка",
"add_header": "Добавить заголовок",
"match": "Обязательные совпадения (match)",
"notMatch": "Запрещённые совпадения (not-match)",
"exist": "Обязательные пути (exist)",
"notExist": "Запрещённые пути (not-exist)",
"condition_path": "Путь условия",
"condition_value": "Значение условия",
"add_condition": "Добавить условие",
"value_type_string": "Строка",
"value_type_number": "Число",
"value_type_boolean": "Булево",
"value_type_json": "JSON",
"value_string": "Строковое значение",
"value_number": "Числовое значение (например, 0.7)",
"value_boolean": "true или false",
"value_json": "Значение JSON",
"value_raw_json": "Raw JSON-фрагмент, например true, 123, \"high\" или {\"type\":\"object\"}",
"value_default": "Значение",
"boolean_true": "true",
"boolean_false": "false"
},
"validation": {
"validation_blocked": "Исправьте ошибки валидации перед сохранением",
"port_range": "Введите корректный порт от 1 до 65535",
"non_negative_integer": "Введите неотрицательное целое число",
"payload_invalid_number": "Введите корректное число",
"payload_invalid_boolean": "Выберите true или false",
"payload_invalid_json": "Введите корректный JSON"
},
"common": {
"edit": "Изменить",
"delete": "Удалить",
"cancel": "Отменить",
"update": "Обновить",
"add": "Добавить"
}
}
},
"quota_management": {
"title": "Управление квотами",
"description": "Следите за статусом квот OAuth для учётных данных Antigravity, Codex и Gemini CLI.",
"refresh_files": "Обновить файлы авторизации",
"refresh_files_and_quota": "Обновить файлы и квоты",
"refresh_all_credentials": "Обновить все учётные данные",
"card_idle_hint": "Используйте кнопку «Обновить все учётные данные» сверху, чтобы загрузить актуальные данные по квотам."
},
"plugin_management": {
"title": "Управление плагинами",
"description": "Просматривайте найденные и зарегистрированные плагины, управляйте переключателями экземпляров, полями конфигурации и ссылками на ресурсы.",
"refresh": "Обновить",
"load_failed": "Не удалось загрузить плагины",
"config_load_failed": "Не удалось прочитать конфигурацию плагина",
"config_not_found": "Не удалось прочитать конфигурацию плагина: backend не нашёл этот плагин.",
"unsupported_backend": "Текущий backend не предоставляет API управления плагинами. Используйте более новую сборку backend с эндпоинтами управления плагинами и перезапустите сервис.",
"global_status": "Глобальный статус",
"global_enabled": "Включено",
"global_disabled": "Отключено",
"global_disabled_hint": "plugins.enabled имеет значение false, поэтому включённые экземпляры плагинов не станут активными.",
"plugins_dir": "Каталог плагинов",
"discovered": "Найдено",
"effective": "Активно",
"search_placeholder": "Искать ID, имя, автора или ресурс плагина...",
"search_label": "Поиск плагинов",
"no_plugins": "Плагинов нет",
"no_plugins_desc": "В каталоге плагинов и реестре времени выполнения плагины не найдены.",
"configured": "Настроен",
"not_configured": "Не настроен",
"registered": "Зарегистрирован",
"not_registered": "Не зарегистрирован",
"oauth": "OAuth",
"status_effective": "Активен",
"status_inactive": "Неактивен",
"version_label": "Версия",
"author_label": "Автор",
"path_label": "Путь",
"edit_config": "Изменить конфиг",
"open_resource": "Открыть ресурс",
"open_repository": "Открыть репозиторий",
"config_title": "Настроить {{name}}",
"base_settings": "Базовые настройки",
"enabled": "Включено",
"enabled_hint": "Управляет полем enabled для этого экземпляра плагина в plugins.configs.",
"priority": "Приоритет",
"config_fields": "Поля конфигурации",
"no_config_fields": "Этот плагин не объявляет визуальные поля конфигурации.",
"select_placeholder": "Выберите",
"array_item_placeholder": "Введите элемент массива",
"add_array_item": "Добавить элемент массива",
"remove_array_item": "Удалить элемент массива",
"delete_plugin": "Удалить",
"delete_confirm_title": "Удалить плагин",
"delete_confirm_message": "Удалить {{name}} ({{id}})? Будут удалены локальный файл плагина и сохранённая конфигурация.",
"delete_success": "Плагин удалён",
"delete_failed": "Не удалось удалить плагин",
"delete_restart_required": "Загруженный плагин можно удалить только после перезапуска backend.",
"toggle_success": "Статус плагина обновлён",
"toggle_failed": "Не удалось обновить статус плагина",
"save_success": "Конфигурация плагина сохранена",
"save_failed": "Не удалось сохранить конфигурацию плагина",
"validation_failed": "Сначала исправьте ошибки формы конфигурации плагина",
"invalid_priority": "Введите целочисленный приоритет",
"invalid_number": "Введите корректное число",
"invalid_integer": "Введите корректное целое число",
"invalid_json": "Введите корректный JSON",
"expected_array": "Введите JSON-массив",
"expected_object": "Введите JSON-объект",
"invalid_enum": "Выберите одно из объявленных значений enum"
},
"plugin_store": {
"title": "Магазин плагинов",
"description": "Просматривайте реестр плагинов, устанавливайте и обновляйте плагины для текущего бэкенда.",
"description_show_more": "Показать больше",
"description_show_less": "Свернуть",
"source_name": "Источник: {{source}}",
"cli_proxy_api_source": "Источник CLIProxyAPI",
"refresh": "Обновить",
"retry": "Повторить",
"load_failed": "Не удалось загрузить магазин плагинов",
"unsupported_backend": "Текущий бэкенд не предоставляет API магазина плагинов. Используйте новую сборку бэкенда с поддержкой магазина плагинов и перезапустите службу.",
"registry_failed": "Не удалось обратиться к реестру плагинов",
"global_status": "Глобальный статус",
"global_enabled": "Включено",
"global_disabled": "Отключено",
"global_disabled_hint": "Параметр plugins.enabled выключен, поэтому установленные плагины не будут работать.",
"plugins_dir": "Каталог плагинов",
"stat_available": "Доступно",
"search_placeholder": "Поиск по ID, названию, автору или тегу...",
"search_label": "Поиск в магазине плагинов",
"filter_label": "Фильтр по статусу установки",
"filter_all": "Все",
"filter_installed": "Установленные",
"filter_not_installed": "Не установленные",
"filter_updates": "Обновления",
"badge_installed": "Установлен",
"badge_update": "Доступно обновление",
"badge_effective": "Активен",
"version_arrow": "v{{from}} → v{{to}}",
"install": "Установить",
"update": "Обновить",
"manage": "Управлять",
"install_confirm_title": "Установка плагина",
"install_confirm_message": "Скачать {{target}} из реестра плагинов и установить в локальный каталог плагинов?",
"update_confirm_title": "Обновление плагина",
"update_confirm_message": "Скачать и установить последнюю версию {{target}}?",
"install_success": "Плагин установлен",
"update_success": "Плагин обновлён",
"install_failed": "Не удалось установить плагин",
"update_failed": "Не удалось обновить плагин",
"restart_required_notice": "Перезапустите службу, чтобы загрузить новую версию плагина",
"restart_required_banner": "Перезапустите службу, чтобы применить новую версию: {{plugins}}",
"open_repository": "Открыть репозиторий",
"open_homepage": "Открыть сайт",
"no_plugins": "Реестр пуст",
"no_plugins_desc": "Реестр плагинов не вернул ни одного плагина.",
"no_matches": "Нет подходящих плагинов",
"no_matches_desc": "Нет плагинов, соответствующих текущему поиску или фильтру.",
"clear_filters": "Сбросить фильтры",
"security_banner_title": "Сторонние плагины работают с полным доступом к бэкенду",
"security_banner_text": "Плагины выполняют код внутри прокси-сервиса и могут читать ваши учётные данные и трафик. Устанавливайте только плагины, которым доверяете, — особенно осторожно относитесь к плагинам, не опубликованным официальной организацией router-for-me.",
"badge_untrusted": "Сторонний",
"gate_title": "Установка {{name}}",
"gate_title_update": "Обновление {{name}}",
"gate_warning": "Если вы не прочитаете это, могут произойти неожиданные и опасные последствия.",
"gate_effect_runs_code": "Этот плагин будет выполнять несертифицированный сторонний код внутри вашего прокси-бэкенда. Система не может изолировать или аудировать его поведение, и он может получить доступ к вашим конфиденциальным учётным данным, сетевым запросам и данным ответов.",
"gate_effect_no_review": "Этот плагин не опубликован и не проверен официальной организацией router-for-me. Официальная организация не предоставляет никаких явных или подразумеваемых гарантий стабильности, безопасности, соответствия требованиям или любых изменений поведения в последующих версиях этого плагина.",
"gate_effect_restart": "Установка изменяет локальный каталог плагинов и может потребовать перезапуска сервиса.",
"gate_untrusted_alert": "Этот плагин не от официальной организации router-for-me. Продолжайте, только если полностью доверяете его автору и источнику.",
"gate_repository_label": "Репозиторий",
"gate_source_label": "Источник",
"gate_step1_action": "Я хочу установить этот плагин",
"gate_step2_action": "Я прочитал и понимаю эти риски",
"gate_step3_prompt": "Для подтверждения введите «{{token}}» в поле ниже",
"gate_step3_action": "Установить этот плагин",
"gate_step3_hint": "Введите точный идентификатор, показанный выше, чтобы включить установку."
},
"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-модель обновлены",
"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 успешно удалена",
"config_enabled": "Конфигурация включена",
"config_disabled": "Конфигурация выключена",
"field_required": "Обязательные поля не могут быть пустыми",
"openai_provider_required": "Заполните имя провайдера и базовый URL",
"openai_provider_added": "Провайдер OpenAI успешно добавлен",
"openai_provider_updated": "Провайдер OpenAI успешно обновлён",
"openai_provider_deleted": "Провайдер OpenAI успешно удалён",
"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": "中文",
"chinese_tw": "繁體中文(台灣)",
"english": "English",
"russian": "Русский"
},
"theme": {
"switch": "Тема",
"light": "Шерстяная бумага",
"white": "Чисто-белая",
"dark": "Тёмная",
"switch_to_light": "Переключиться на тему «Шерстяная бумага»",
"switch_to_dark": "Переключиться на тёмную тему",
"auto": "Следовать системе"
},
"sidebar": {
"toggle_expand": "Развернуть боковую панель",
"toggle_collapse": "Свернуть боковую панель"
},
"footer": {
"api_version": "Версия CLI Proxy API",
"build_date": "Время сборки",
"version": "Версия интерфейса управления",
"author": "Автор"
},
"providersPage": {
"header": {
"title": "AI Провайдеры",
"activeResources": "{{active}}/{{total}} активных",
"providerFamilies": "{{count}} семейств",
"updatedAt": "Обновлено {{time}}",
"issueCount": "{{count}} проблем"
},
"actions": {
"refresh": "Обновить",
"syncing": "Синхронизация",
"new": "Создать",
"edit": "Изменить",
"view": "Просмотр",
"delete": "Удалить",
"clear": "Очистить",
"cancel": "Отмена",
"save": "Сохранить",
"create": "Создать",
"enable": "Включить",
"disable": "Отключить"
},
"categories": {
"title": "Провайдеры",
"activeCount": "{{active}}/{{total}} активных"
},
"providerNames": {
"gemini": "Gemini",
"codex": "Codex",
"claude": "Claude",
"vertex": "Vertex",
"openaiCompatibility": "OpenAI-совместимый"
},
"table": {
"key": "Ключ",
"baseUrl": "Base URL",
"prefix": "Префикс",
"models": "Модели/Заголовки",
"status": "Статус",
"actions": "Действия",
"metrics": {
"models": "Модели",
"keys": "Ключи",
"headers": "Заголовки"
},
"websocketsTag": "WebSockets",
"cloakTag": "Cloak",
"empty": "Нет ресурсов, нажмите \"Создать\".",
"filterPlaceholder": "Поиск по ключам, URL, префиксам…",
"description": "Управление ресурсами {{route}}",
"providerIssue": "Проблема с провайдером"
},
"status": {
"active": "Активен",
"disabled": "Отключён",
"notSet": "Не задано",
"none": "Нет",
"notConfigured": "Не настроено",
"defaultSuffix": "(по умолчанию)"
},
"detail": {
"title": "Подробности",
"metadataTitle": "Метаданные",
"fields": {
"identifier": "Идентификатор",
"baseUrl": "Base URL",
"proxyUrl": "Proxy URL",
"prefix": "Префикс",
"models": "Моделей",
"headers": "Заголовков",
"authIndex": "Auth Index",
"excludedModels": "Исключённых моделей",
"apiKeyEntries": "API-ключей"
}
},
"form": {
"createEyebrow": "Создать",
"editEyebrow": "Изменить",
"name": "Название",
"apiKey": "API-ключ",
"apiKeyCreatePlaceholder": "Введите API-ключ",
"apiKeyEditPlaceholder": "Оставьте пустым, чтобы не менять",
"baseUrl": "Base URL",
"baseUrlRequiredHint": "Обязательно для этого провайдера",
"proxyUrl": "Proxy URL",
"prefix": "Префикс",
"priority": "Приоритет",
"disabled": "Отключить эту запись",
"disabledHint": "Отключённые записи не используются шлюзом",
"websockets": "Включить WebSockets",
"testModel": "Тестовая модель",
"testModelClaudeHint": "Используется только для проверки соединения; не сохраняется",
"testModelAutoWith": "Авто · {{name}}",
"testModelAutoEmpty": "Авто (модели ещё не добавлены)",
"testModelCustom": "{{name}} (своя)",
"modelsSection": "Пользовательские модели",
"addModel": "Добавить модель",
"headersSection": "Заголовки запроса",
"addHeader": "Добавить заголовок",
"headers": "Заголовки",
"headersHint": "По одному в строке, формат Key: Value",
"excludedSection": "Исключённые модели",
"excludedHint": "По одной модели в строке; совпавшие модели не будут направлены",
"cloakSection": "Настройки Cloak",
"cloakMode": "Режим",
"cloakStrict": "Строгий режим",
"cloakSensitiveWords": "Стоп-слова (по одному в строке)",
"apiKeyEntriesSection": "API-ключи",
"apiKeyEntry": "Ключ #{{index}}",
"addApiKeyEntry": "Добавить ключ",
"showApiKey": "Показать ключ API",
"hideApiKey": "Скрыть ключ API",
"disableCooling": "Отключить cooldown",
"disableCoolingHint": "Отключает окна охлаждения после ошибок только для этой записи",
"modelEntry": "Модель #{{index}}",
"modelImage": "Разрешить image endpoints",
"modelImageHint": "Разрешить модель для /v1/images/generations и /v1/images/edits",
"thinkingConfig": "Thinking config (JSON)",
"thinkingConfigHint": "Поддерживает levels, min, max, zero_allowed, dynamic_allowed",
"cloakCacheUserId": "Кэшировать user_id",
"cloakCacheUserIdHint": "Переиспользовать Claude cloak user_id для каждого API-ключа",
"experimentalCchSigning": "Экспериментальная CCH-подпись",
"experimentalCchSigningHint": "Подписывать финальное тело cloaked Claude /v1/messages через CCH",
"validation": {
"nameRequired": "Название обязательно",
"apiKeyRequired": "Нужен хотя бы один API-ключ",
"baseUrlRequired": "Base URL обязателен"
}
},
"delete": {
"title": "Удалить ресурс",
"confirm": "Удалить {{name}}? Действие необратимо."
},
"toast": {
"created": "Создано",
"updated": "Обновлено",
"deleted": "Удалено",
"enabled": "Включено",
"disabled": "Отключено",
"toggleFailed": "Не удалось обновить статус"
},
"unsavedChanges": {
"title": "Отменить несохранённые изменения?",
"message": "В форме есть несохранённые изменения. При закрытии они будут потеряны.",
"discard": "Отменить изменения",
"keepEditing": "Продолжить"
},
"connectivity": {
"test": "Проверить",
"testAll": "Проверить все",
"success": "Доступно",
"baseUrlRequired": "Base URL обязателен",
"endpointInvalid": "Некорректный адрес",
"apiKeyRequired": "API-ключ обязателен",
"modelRequired": "Нужна тестовая модель",
"timeout": "Таймаут после {{seconds}} с",
"requestFailed": "Запрос не выполнен"
},
"discovery": {
"openButton": "Получить с конечной точки",
"searchPlaceholder": "Поиск моделей",
"reload": "Обновить",
"loading": "Загрузка моделей…",
"empty": "Конечная точка не вернула моделей",
"notLoaded": "Нажмите Обновить, чтобы загрузить модели",
"selectAll": "Выбрать все",
"clearAll": "Снять выбор",
"selectedCount": "{{selected}} / {{total}}",
"alreadyAdded": "Уже добавлено",
"close": "Закрыть",
"apply": "Применить ({{count}})"
},
"toolbar": {
"sortBy": "Сортировка",
"sort": {
"name": "Имя",
"priority": "Приоритет",
"recentSuccess": "Недавние успехи",
"directionAsc": "По возрастанию",
"directionDesc": "По убыванию"
},
"filter": {
"allModels": "Все модели",
"selectedModels": "{{selected}}/{{total}} моделей",
"selectAll": "Выбрать все",
"clear": "Очистить",
"empty": "Модели ещё не настроены"
}
},
"modelCatalog": {
"notLoaded": "Не загружено"
}
}
}