mirror of
https://github.com/Nezumi-2711/9router.git
synced 2026-09-23 04:09:49 +00:00
* feat(model-select-modal): highlight added models and support bulk selection - Add addedModelValues prop to highlight already-added models with primary color - Sort models alphabetically per provider, with added models floated to top - Replace green highlight with primary brand color (orange #E56A4A) - Use check icon (10px) inline with model name instead of check_circle - Replace Done button with info bar explaining click-to-toggle behavior - Add ProviderIcon to provider group headers replacing colored dot - Import ProviderIcon, remove unused Button import * feat(cli-tools): wire addedModelValues, onDeselect, and auto-save to model select modals - Pass selectedModels as addedModelValues to ModelSelectModal in OpenCode and Copilot cards - Add onDeselect handler to remove model from list on second click - Set closeOnSelect=false to allow bulk model selection - Remove manual setModalOpen(false) from onSelect callbacks - Add saveModels() silent auto-save triggered on modal close (OpenCodeToolCard) - Use useRef to track latest selectedModels in closure-safe way * feat(modal): functional traffic light close button with hover icon and tooltip - Make red dot a clickable button that closes the modal - Show ✕ icon inside red dot on hover via group-hover opacity transition - Gray out yellow and green dots (cursor-not-allowed, no tooltip) - Increase dot size from w-3 h-3 to w-4 h-4 - Add Tooltip with brand-matched color #FF5F56 on red dot - Remove X close button from modal header * feat(tooltip): add color prop for themed tooltip backgrounds * feat(i18n): add translations for model select info bar and close tooltip - Add 'Click to add, click again to remove. Changes are saved automatically.' to all 32 locales - Add 'Close' translation to all 32 locales * fix(ui): address code review feedback on modal UX and auto-save - Modal: remove showCloseButton prop, use showTrafficLights for header condition, hide traffic lights on mobile (hidden md:flex), add mobile X button (md:hidden) with aria-label, add aria-label and title on traffic light close button - OpenCodeToolCard: validate activeModel membership before saving — fallback to models[0] or empty string; clear/reassign activeModel on deselect when removed model was the active one - CopilotToolCard: add useRef + selectedModelsRef, add saveModels() using /api/cli-tools/copilot-settings, wire auto-save on modal close - ModelSelectModal: fix JSX formatting — separate info bar closing div from Search comment onto its own line
193 lines
12 KiB
JSON
193 lines
12 KiB
JSON
{
|
|
"Cancel": "Отменить",
|
|
"Delete": "Удалить",
|
|
"Edit": "Редактировать",
|
|
"Save": "Сохранить",
|
|
"Close": "Закрыть",
|
|
"Add": "Добавить",
|
|
"Remove": "Удалить",
|
|
"Settings": "Настройки",
|
|
"Profile": "Профиль",
|
|
"Dashboard": "Панель управления",
|
|
"Logout": "Выход",
|
|
"Login": "Вход",
|
|
"Providers": "Провайдеры",
|
|
"Usage": "Статистика",
|
|
"API Key": "Ключ API",
|
|
"Connected": "Подключено",
|
|
"Disconnected": "Отключено",
|
|
"Active": "Активно",
|
|
"Inactive": "Неактивно",
|
|
"Success": "Успех",
|
|
"Failed": "Ошибка",
|
|
"Error": "Ошибка",
|
|
"Warning": "Предупреждение",
|
|
"Info": "Информация",
|
|
"Loading": "Загрузка",
|
|
"Search": "Поиск",
|
|
"Filter": "Фильтр",
|
|
"Sort": "Сортировка",
|
|
"Export": "Экспорт",
|
|
"Import": "Импорт",
|
|
"Refresh": "Обновить",
|
|
"Back": "Назад",
|
|
"Next": "Далее",
|
|
"Previous": "Назад",
|
|
"Submit": "Отправить",
|
|
"Confirm": "Подтвердить",
|
|
"Yes": "Да",
|
|
"No": "Нет",
|
|
"OK": "OK",
|
|
"Apply": "Применить",
|
|
"Reset": "Сбросить",
|
|
"Clear": "Очистить",
|
|
"Select": "Выбрать",
|
|
"Upload": "Загрузить",
|
|
"Download": "Скачать",
|
|
"Copy": "Копировать",
|
|
"Paste": "Вставить",
|
|
"Cut": "Вырезать",
|
|
"Undo": "Отменить",
|
|
"Redo": "Повторить",
|
|
"Name": "Имя",
|
|
"Description": "Описание",
|
|
"Status": "Статус",
|
|
"Type": "Тип",
|
|
"Date": "Дата",
|
|
"Time": "Время",
|
|
"Created": "Создано",
|
|
"Updated": "Обновлено",
|
|
"Actions": "Действия",
|
|
"Details": "Подробности",
|
|
"View": "Просмотр",
|
|
"New": "Новый",
|
|
"Total": "Всего",
|
|
"Count": "Количество",
|
|
"Price": "Цена",
|
|
"Cost": "Стоимость",
|
|
"Free": "Бесплатно",
|
|
"Paid": "Платно",
|
|
"Enable": "Включить",
|
|
"Disable": "Отключить",
|
|
"Enabled": "Включено",
|
|
"Disabled": "Отключено",
|
|
"Online": "Онлайн",
|
|
"Offline": "Офлайн",
|
|
"Available": "Доступно",
|
|
"Unavailable": "Недоступно",
|
|
"Required": "Обязательно",
|
|
"Optional": "Опционально",
|
|
"Default": "По умолчанию",
|
|
"Custom": "Пользовательский",
|
|
"Advanced": "Дополнительно",
|
|
"Basic": "Основной",
|
|
"Help": "Справка",
|
|
"Support": "Поддержка",
|
|
"Documentation": "Документация",
|
|
"Version": "Версия",
|
|
"Language": "Язык",
|
|
"Theme": "Тема",
|
|
"Light": "Светлая",
|
|
"Dark": "Темная",
|
|
"Auto": "Автоматически",
|
|
"Endpoint": "Конечная точка",
|
|
"Combos": "Комбинации",
|
|
"Quota Tracker": "Отслеживание квоты",
|
|
"MITM": "MITM",
|
|
"CLI Tools": "Инструменты CLI",
|
|
"Console Log": "Журнал консоли",
|
|
"System": "Система",
|
|
"Debug": "Отладка",
|
|
"Shutdown": "Завершение",
|
|
"Close Proxy": "Закрыть прокси",
|
|
"Are you sure you want to close the proxy server?": "Вы уверены, что хотите закрыть прокси-сервер?",
|
|
"Server Disconnected": "Сервер отключен",
|
|
"The proxy server has been stopped.": "Прокси-сервер был остановлен.",
|
|
"Reload Page": "Перезагрузить страницу",
|
|
"Service is running in terminal. You can close this web page. Shutdown will stop the service.": "Сервис работает в терминале. Вы можете закрыть эту веб-страницу. Завершение остановит сервис.",
|
|
"Manage your AI provider connections": "Управляйте своими подключениями провайдера ИИ",
|
|
"Model combos with fallback": "Комбинации моделей с резервным вариантом",
|
|
"Monitor your API usage, token consumption, and request logs": "Мониторьте использование API, потребление токенов и журналы запросов",
|
|
"Intercept CLI tool traffic and route through 9Router": "Перехватите трафик инструмента CLI и маршрутизируйте через 9Router",
|
|
"Configure CLI tools": "Настройка инструментов CLI",
|
|
"API endpoint configuration": "Конфигурация конечной точки API",
|
|
"Manage your preferences": "Управляйте своими предпочтениями",
|
|
"Debug translation flow between formats": "Отладка потока трансляции между форматами",
|
|
"Live server console output": "Вывод консоли сервера в реальном времени",
|
|
"Create model combos with fallback support": "Создание комбинаций моделей с поддержкой резервного варианта",
|
|
"Local Mode": "Локальный режим",
|
|
"Running on your machine": "Работает на вашем компьютере",
|
|
"Database Location": "Расположение базы данных",
|
|
"Download Backup": "Загрузить резервную копию",
|
|
"Import Backup": "Импортировать резервную копию",
|
|
"Database backup downloaded": "Резервная копия базы данных загружена",
|
|
"Database imported successfully": "База данных успешно импортирована",
|
|
"Security": "Безопасность",
|
|
"Require login": "Требовать вход",
|
|
"When ON, dashboard requires password. When OFF, access without login.": "Когда ВКЛЮЧЕНО, панель управления требует пароль. Когда ОТКЛЮЧЕНО, доступ без входа.",
|
|
"Current Password": "Текущий пароль",
|
|
"Enter current password": "Введите текущий пароль",
|
|
"New Password": "Новый пароль",
|
|
"Enter new password": "Введите новый пароль",
|
|
"Confirm New Password": "Подтвердить новый пароль",
|
|
"Confirm new password": "Подтвердите новый пароль",
|
|
"Update Password": "Обновить пароль",
|
|
"Set Password": "Установить пароль",
|
|
"Password updated successfully": "Пароль успешно обновлен",
|
|
"Passwords do not match": "Пароли не совпадают",
|
|
"Routing Strategy": "Стратегия маршрутизации",
|
|
"Round Robin": "Циклическая выборка",
|
|
"Cycle through accounts to distribute load": "Чередование аккаунтов для распределения нагрузки",
|
|
"Sticky Limit": "Липкий предел",
|
|
"Calls per account before switching": "Вызовов на аккаунт перед переключением",
|
|
"Network": "Сеть",
|
|
"Outbound Proxy": "Исходящий прокси",
|
|
"Enable proxy for OAuth + provider outbound requests.": "Включить прокси для OAuth + исходящих запросов провайдера.",
|
|
"Proxy URL": "URL прокси",
|
|
"Leave empty to inherit existing env proxy (if any).": "Оставьте пусто, чтобы унаследовать существующий прокси env (если есть).",
|
|
"No Proxy": "Без прокси",
|
|
"Comma-separated hostnames/domains to bypass the proxy.": "Разделенные запятыми имена хостов/домены для обхода прокси.",
|
|
"Test proxy URL": "Протестировать URL прокси",
|
|
"Proxy settings applied": "Параметры прокси применены",
|
|
"Proxy enabled": "Прокси включен",
|
|
"Proxy disabled": "Прокси отключен",
|
|
"Proxy test OK": "Тест прокси OK",
|
|
"Proxy test failed": "Тест прокси не пройден",
|
|
"Please enter a Proxy URL to test": "Пожалуйста, введите URL прокси для тестирования",
|
|
"Observability": "Наблюдаемость",
|
|
"Enable Observability": "Включить наблюдаемость",
|
|
"Turn request detail recording on/off globally": "Включить/отключить запись деталей запроса глобально",
|
|
"Max Records": "Максимум записей",
|
|
"Maximum request detail records to keep (older records are auto-deleted)": "Максимальное количество записей деталей запроса для сохранения (старые записи автоматически удаляются)",
|
|
"Batch Size": "Размер пакета",
|
|
"Number of items to accumulate before writing to database (higher = better performance)": "Количество элементов для накопления перед записью в базу данных (выше = лучшая производительность)",
|
|
"Flush Interval (ms)": "Интервал очистки (мс)",
|
|
"Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "Максимальное время ожидания перед очисткой буфера (предотвращает потерю данных при низком трафике)",
|
|
"Max JSON Size (KB)": "Максимальный размер JSON (KB)",
|
|
"Maximum size for each JSON field (request/response) before truncation": "Максимальный размер каждого поля JSON (запрос/ответ) перед усечением",
|
|
"All data stored on your machine": "Все данные хранятся на вашем компьютере",
|
|
"MITM Server": "Сервер MITM",
|
|
"Running": "Работает",
|
|
"Stopped": "Остановлено",
|
|
"Cert": "Сертификат",
|
|
"Server": "Сервер",
|
|
"Purpose:": "Назначение:",
|
|
"Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Используйте Antigravity IDE и GitHub Copilot → с ЛЮБЫМ провайдером/моделью от 9Router",
|
|
"How it works:": "Как это работает:",
|
|
"Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Запрос Antigravity/Copilot IDE → Перенаправление DNS на localhost:443 → Прокси MITM перехватывает → 9Router → ответ для Antigravity/Copilot",
|
|
"No API keys — create one in Keys page": "Нет ключей API — создайте один на странице ключей",
|
|
"sk_9router (default)": "sk_9router (по умолчанию)",
|
|
"Server started": "Сервер запущен",
|
|
"Failed to start server": "Ошибка при запуске сервера",
|
|
"Server stopped — all DNS cleared": "Сервер остановлен — все DNS очищено",
|
|
"Failed to stop server": "Ошибка при остановке сервера",
|
|
"Sudo password is required": "Требуется пароль sudo",
|
|
"Stop Server": "Остановить сервер",
|
|
"Start Server": "Запустить сервер",
|
|
"Enable DNS per tool below to activate interception": "Включите DNS для каждого инструмента ниже, чтобы активировать перехват",
|
|
"Sudo Password Required": "Требуется пароль Sudo",
|
|
"Enter your sudo password to start/stop MITM server": "Введите пароль sudo для запуска/остановки сервера MITM",
|
|
"Sudo Password": "Пароль sudo",
|
|
"Click to add, click again to remove. Changes are saved automatically.": "Нажмите, чтобы добавить, нажмите ещё раз, чтобы удалить. Изменения сохраняются автоматически."
|
|
}
|