mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-11 09:42:15 +03:00
i18n(ru): complete Russian locale — fill 25 missing keys and 80 placeholders
This commit is contained in:
@@ -937,7 +937,7 @@
|
||||
"disabled": "Отключено",
|
||||
"featureFlagOmnirouteEmergencyFallbackDescription": "Перенаправлять запросы при исчерпании бюджета на резервный бесплатный провайдер/модель.",
|
||||
"featureFlagArenaEloSyncEnabledDescription": "Включить периодическую синхронизацию ELO из таблицы лидеров Arena AI для рейтинга интеллектуальности моделей.",
|
||||
"featureFlagExposeCcDiscoveryAliasesDescription": "Объявите идентификаторы зеркала claude/<provider>/<model> в /v1/models, чтобы при обнаружении модели шлюза кода Claude были перечислены модели, не относящиеся к Claude. Внимание: удваивает записи каталога для всех клиентов, если включено глобально.",
|
||||
"featureFlagExposeCcDiscoveryAliasesDescription": "Публиковать claude/<провайдер>/<модель> зеркальные ID на /v1/models, чтобы Claude Code мог видеть не-Claude модели. Внимание: удваивает записи каталога для всех клиентов при глобальном включении.",
|
||||
"sidebar": {
|
||||
"home": "Главная",
|
||||
"dashboard": "Панель управления",
|
||||
@@ -1066,7 +1066,7 @@
|
||||
"contextUltraSubtitle": "Эвристическая обрезка",
|
||||
"contextOmniglyphSubtitle": "Контекст как изображения",
|
||||
"compressionStudioSubtitle": "Каскад движков в реальном времени",
|
||||
"compressionExclusionsSubtitle": "Обход каждой модели/конечной точки",
|
||||
"compressionExclusionsSubtitle": "Обход для отдельных моделей/endpoint'ов",
|
||||
"chaosConfigSubtitle": "Мультимодельное параллельное выполнение",
|
||||
"routingSection": "Routing",
|
||||
"protocolsSection": "Protocols",
|
||||
@@ -1119,7 +1119,6 @@
|
||||
"runtime": "Runtime",
|
||||
"consoleLogs": "Console Logs",
|
||||
"logsTimeline": "Timeline",
|
||||
"logsTimelineSubtitle": "Визуальная временная шкала запроса",
|
||||
"globalRouting": "Global Routing",
|
||||
"mitmProxy": "MITM Proxy",
|
||||
"oneProxy": "1Proxy",
|
||||
@@ -1165,6 +1164,7 @@
|
||||
"logsSubtitle": "Application logs",
|
||||
"logsProxySubtitle": "Proxy traffic logs",
|
||||
"consoleLogsSubtitle": "Console output",
|
||||
"logsTimelineSubtitle": "Визуальная временная шкала запросов",
|
||||
"logsActivitySubtitle": "User activity log",
|
||||
"healthSubtitle": "System health check",
|
||||
"costsPricingSubtitle": "Per-model pricing rules",
|
||||
@@ -1194,7 +1194,7 @@
|
||||
"settingsSecuritySubtitle": "Auth and encryption",
|
||||
"settingsAccessTokensSubtitle": "Токены CLI с ограниченной областью видимости для удаленного режима",
|
||||
"settingsFeatureFlagsSubtitle": "Переключить возможности системы",
|
||||
"settingsCacheSubtitle": "Каталог моделей и кэширование ответов",
|
||||
"settingsCacheSubtitle": "Кэш каталога моделей и ответов",
|
||||
"settingsSidebar": "Sidebar",
|
||||
"settingsSidebarSubtitle": "Customize sidebar layout",
|
||||
"settingsAuthzSubtitle": "Политика маршрутизации инвентаря и обхода",
|
||||
@@ -1587,7 +1587,8 @@
|
||||
"settingsAdvancedDescription": "Advanced payload rules, request limits, and proxy API settings",
|
||||
"mitmProxyDescription": "Configure MITM proxy settings for traffic inspection and debugging",
|
||||
"oneProxyDescription": "Configure 1Proxy settings for advanced proxy chaining",
|
||||
"omniSkillsDescription": "Установите и управляйте песочными навыками для автоматизированного выполнения запросов и инструментов"
|
||||
"omniSkillsDescription": "Установите и управляйте песочными навыками для автоматизированного выполнения запросов и инструментов",
|
||||
"logo": "OmniRoute"
|
||||
},
|
||||
"cloudSyncStatus": {
|
||||
"synced": "Синхронизировано",
|
||||
@@ -2498,7 +2499,13 @@
|
||||
"sharedResult": "Общее",
|
||||
"overlapSummary": "{first} против {second}: {overlap} общего",
|
||||
"compareEmptyTitle": "Выберите провайдеров и введите запрос для сравнения",
|
||||
"compareEmptyDescription": "Результаты будут показаны рядом друг с другом с указанием задержки, стоимости и совпадения URL"
|
||||
"compareEmptyDescription": "Результаты будут показаны рядом друг с другом с указанием задержки, стоимости и совпадения URL",
|
||||
"minChars": "Введите минимум {min} символа(ов)",
|
||||
"agentId": "ID агента",
|
||||
"agentName": "Имя агента",
|
||||
"searchProviders": "Поиск провайдеров...",
|
||||
"searchModels": "Поиск моделей...",
|
||||
"searchEndpoints": "Поиск endpoint'ов..."
|
||||
},
|
||||
"cliTools": {
|
||||
"title": "Инструменты интерфейса командной строки",
|
||||
@@ -2511,14 +2518,6 @@
|
||||
"auto": "Авто",
|
||||
"always": "Всегда"
|
||||
},
|
||||
"ccDiscoveryInfoButton": "Как включить обнаружение в Claude Code",
|
||||
"ccDiscoveryInfoTooltip": "Рекламируйте модели, не относящиеся к Claude, под идентификаторами зеркала claude/<provider>/<model>, чтобы средство обнаружения модели шлюза Claude Code могло их перечислить. Удваивает записи каталога для всех клиентов, если включено глобально.",
|
||||
"ccDiscoveryInfoLink": "Открытые флаги функций",
|
||||
"ccOnboardingTitle": "settings.json для обнаружения модели шлюза",
|
||||
"ccOnboardingCopy": "Копировать",
|
||||
"ccOnboardingCopied": "Скопировано",
|
||||
"ccOnboardingKeyPlaceholder": "<your OmniRoute API key>",
|
||||
"ccOnboardingWindowNote": "Claude Code предполагает контекстное окно размером 200 КБ для любого идентификатора модели, который он не распознает. Для модели с другим реальным окном добавьте CLAUDE_CODE_AUTO_COMPACT_WINDOW прямо под ним, чтобы автоматическое сжатие не сработало слишком рано.",
|
||||
"failedSave": "Не удалось сохранить",
|
||||
"profileSyncTitle": "Автосинхронизация профилей CLI",
|
||||
"profileSyncDescription": "После синхронизации моделей провайдеров автоматически перезаписывать профили инструментов CLI из актуального каталога. Отключено по умолчанию — записываются только файлы профилей; активная конфигурация или конфигурация по умолчанию никогда не изменяется.",
|
||||
@@ -2920,28 +2919,6 @@
|
||||
"hermesRoleSkillsHubDesc": "Навыки и логика использования инструментов",
|
||||
"hermesRoleApproval": "Одобрение",
|
||||
"hermesRoleApprovalDesc": "Решения по безопасности и одобрению",
|
||||
"hermesRoleMcp": "МКП",
|
||||
"hermesRoleMcpDesc": "Вызовы инструментов сервера MCP",
|
||||
"hermesRoleTitleGeneration": "Генерация заголовков",
|
||||
"hermesRoleTitleGenerationDesc": "Генерация названия сессии",
|
||||
"hermesRoleMemoryQueryRewrite": "Перезапись запроса к памяти",
|
||||
"hermesRoleMemoryQueryRewriteDesc": "Переписывание поискового запроса в памяти",
|
||||
"hermesRoleTtsAudioTags": "Аудио теги TTS",
|
||||
"hermesRoleTtsAudioTagsDesc": "Генерация аудиотегов TTS",
|
||||
"hermesRoleTriageSpecifier": "Спецификатор сортировки",
|
||||
"hermesRoleTriageSpecifierDesc": "Спецификация сортировки проблем и PR",
|
||||
"hermesRoleKanbanDecomposer": "Канбан-декомпозер",
|
||||
"hermesRoleKanbanDecomposerDesc": "Декомпозиция задач Канбана",
|
||||
"hermesRoleProfileDescriber": "Описатель профиля",
|
||||
"hermesRoleProfileDescriberDesc": "Описание профиля пользователя",
|
||||
"hermesRoleGoalJudge": "Судья по воротам",
|
||||
"hermesRoleGoalJudgeDesc": "Оценка достижения цели",
|
||||
"hermesRoleCurator": "Куратор",
|
||||
"hermesRoleCuratorDesc": "Курирование навыков и памяти",
|
||||
"hermesRoleMonitor": "Монитор",
|
||||
"hermesRoleMonitorDesc": "Фоновый мониторинг",
|
||||
"hermesRoleBackgroundReview": "Справочная информация",
|
||||
"hermesRoleBackgroundReviewDesc": "Проверка фонового кода",
|
||||
"hermesSelectBeforePreview": "Выберите модели для ролей или убедитесь, что роли загружены, перед предварительным просмотром.",
|
||||
"hermesPreviewFailed": "Не удалось создать предварительный просмотр",
|
||||
"hermesSavedTo": "Сохранено в {path}",
|
||||
@@ -2975,7 +2952,37 @@
|
||||
"copilotPasteInto": "Вставить в:",
|
||||
"copilotReloadInstruction": "Затем перезапустите VS Code и укажите API-ключ в поле ввода.",
|
||||
"wireApiChatCompletions": "Завершения чата (/chat/completions)",
|
||||
"wireApiResponses": "API ответов (/responses)"
|
||||
"wireApiResponses": "API ответов (/responses)",
|
||||
"ccDiscoveryInfoButton": "Как включить обнаружение в Claude Code",
|
||||
"ccDiscoveryInfoTooltip": "Публиковать не-Claude модели под зеркальными ID claude/<провайдер>/<модель>, чтобы Claude Code мог их обнаруживать. Удваивает записи каталога для всех клиентов при глобальном включении.",
|
||||
"ccDiscoveryInfoLink": "Открыть Feature Flags",
|
||||
"ccOnboardingTitle": "settings.json для обнаружения gateway моделей",
|
||||
"ccOnboardingCopy": "Копировать",
|
||||
"ccOnboardingCopied": "Скопировано",
|
||||
"ccOnboardingKeyPlaceholder": "<ваш API ключ OmniRoute>",
|
||||
"ccOnboardingWindowNote": "Claude Code предполагает окно контекста в 200K для любой незнакомой модели. Если у модели другой реальный размер окна, добавьте CLAUDE_CODE_AUTO_COMPACT_WINDOW прямо под ней, чтобы авто-компактизация не срабатывала слишком рано.",
|
||||
"hermesRoleMcp": "MCP",
|
||||
"hermesRoleMcpDesc": "Вызовы инструментов MCP сервера",
|
||||
"hermesRoleTitleGeneration": "Генерация заголовков",
|
||||
"hermesRoleTitleGenerationDesc": "Генерация заголовков сессий",
|
||||
"hermesRoleMemoryQueryRewrite": "Перезапись поисковых запросов",
|
||||
"hermesRoleMemoryQueryRewriteDesc": "Перезапись поисковых запросов памяти",
|
||||
"hermesRoleTtsAudioTags": "TTS аудио-теги",
|
||||
"hermesRoleTtsAudioTagsDesc": "Генерация TTS аудио-тегов",
|
||||
"hermesRoleTriageSpecifier": "Спецификатор Triage",
|
||||
"hermesRoleTriageSpecifierDesc": "Спецификация triage для задач и PR",
|
||||
"hermesRoleKanbanDecomposer": "Декомпозитор Kanban",
|
||||
"hermesRoleKanbanDecomposerDesc": "Декомпозиция задач Kanban",
|
||||
"hermesRoleProfileDescriber": "Описатель профилей",
|
||||
"hermesRoleProfileDescriberDesc": "Описание профиля пользователя",
|
||||
"hermesRoleGoalJudge": "Судья целей",
|
||||
"hermesRoleGoalJudgeDesc": "Оценка выполнения целей",
|
||||
"hermesRoleCurator": "Куратор",
|
||||
"hermesRoleCuratorDesc": "Курация навыков и памяти",
|
||||
"hermesRoleMonitor": "Монитор",
|
||||
"hermesRoleMonitorDesc": "Фоновое наблюдение",
|
||||
"hermesRoleBackgroundReview": "Фоновое ревью",
|
||||
"hermesRoleBackgroundReviewDesc": "Фоновое ревью кода"
|
||||
},
|
||||
"combos": {
|
||||
"title": "Комбо",
|
||||
@@ -3619,7 +3626,13 @@
|
||||
"noMatchingCostRows": "Нет подходящих строк затрат",
|
||||
"noMatchingCostRowsDescription": "Измените текст поиска, группировку или выбранное временное окно.",
|
||||
"showingCostRows": "Показано {shown} из {total} совпадающих строк.",
|
||||
"showingTopCostRows": "Показано {shown} из {total} совпадающих строк (топ 50)."
|
||||
"showingTopCostRows": "Показано {shown} из {total} совпадающих строк (топ 50).",
|
||||
"spendRateComparisonTooltipHighSpend": "Аномальный скачок расхода: {rate} ({changePercent}% от нормы)",
|
||||
"totalCostBreadcrumb": "Общая стоимость",
|
||||
"providerCostShareBreadcrumb": "Доля провайдеров",
|
||||
"providerSpendAnalysisBreadcrumb": "Анализ расходов",
|
||||
"costByModelBreadcrumb": "По моделям",
|
||||
"spendAnalysisBreadcrumb": "Анализ трат"
|
||||
},
|
||||
"endpoint": {
|
||||
"title": "Конечная точка API",
|
||||
@@ -3726,7 +3739,7 @@
|
||||
"modelsCount": "{count, plural, one {# модель} few {# модели} many {# моделей} other {# модели}}",
|
||||
"sectionTitle": "Интерфейс интеграции",
|
||||
"sectionDescription": "API, совместимые с OpenAI, и конечные точки операционных протоколов",
|
||||
"tabApis": "__MISSING__:APIs",
|
||||
"tabApis": "API",
|
||||
"tabProtocols": "Протоколы",
|
||||
"tabsAria": "Разделы конечной точки",
|
||||
"protocolsTitle": "Протоколы",
|
||||
@@ -3917,7 +3930,18 @@
|
||||
"obsidianWebdavUrl": "URL WebDAV",
|
||||
"obsidianUsername": "Имя пользователя",
|
||||
"obsidianPassword": "Пароль",
|
||||
"obsidianTailscaleHint": "Используйте IP-адрес Tailscale вместо localhost при подключении с мобильного устройства. Оба устройства должны находиться в одной сети Tailscale."
|
||||
"obsidianTailscaleHint": "Используйте IP-адрес Tailscale вместо localhost при подключении с мобильного устройства. Оба устройства должны находиться в одной сети Tailscale.",
|
||||
"settingsAudienceTtl": "TTL аудитории",
|
||||
"settingsAudienceTtlDescription": "Как долго кэшировать соответствия audience → endpoint (в секундах)",
|
||||
"settingsEndpointAudienceRefreshLimit": "Лимит обновления аудитории endpoint'а",
|
||||
"settingsEndpointAudienceRefreshLimitDescription": "Максимальное количество переключений audience в минуту",
|
||||
"settingsSourceHeader": "Заголовок источника",
|
||||
"settingsSourceHeaderDescription": "HTTP заголовок, определяющий источник запроса (опционально)",
|
||||
"apiManagementHelpTitle": "API к этому endpoint'у",
|
||||
"apiManagementHelp": "Используйте эти заголовки и URL для подключения инструментов, таких как OpenCode, Cline, Continue и т.д.",
|
||||
"apiManagementEndpointHint": "Пользовательский URL endpoint'а отображается перед авторизацией.",
|
||||
"endpointMenuSaveAndContinue": "Сохранить и продолжить",
|
||||
"sessionLimitReached": "Сессия достигла лимита"
|
||||
},
|
||||
"endpoints": {
|
||||
"tabProxy": "Прокси конечных точек",
|
||||
@@ -5197,18 +5221,6 @@
|
||||
"interceptFetchHint": "Перенаправлять нативные вызовы инструмента web_fetch на /v1/web/fetch в OmniRoute.",
|
||||
"interceptionLoadError": "Не удалось загрузить настройки перехвата: {error}",
|
||||
"interceptionSaveError": "Не удалось сохранить настройки перехвата: {error}",
|
||||
"ccAliasSectionTitle": "Выставить в Клоде Коде (claude/…)",
|
||||
"ccAliasSectionHint": "Рекламируйте модели этого поставщика под идентификаторами зеркала claude/<provider>/<model>, чтобы средство обнаружения модели шлюза Claude Code могло их перечислить. По умолчанию отключено — включение этого параметра удваивает записи каталога для всех клиентов.",
|
||||
"ccAliasProviderLevelLabel": "Поставщик по умолчанию",
|
||||
"ccAliasModelOverridesLabel": "Переопределения для каждой модели",
|
||||
"ccAliasModelOverrideAriaLabel": "Переопределить для {modelId}",
|
||||
"ccAliasStateInherit": "Наследовать",
|
||||
"ccAliasStateOn": "Вкл.",
|
||||
"ccAliasStateOff": "Выкл.",
|
||||
"ccAliasAddModelPlaceholder": "Идентификатор модели (например, gpt-4o)",
|
||||
"ccAliasAddModelButton": "Добавить переопределение",
|
||||
"ccAliasLoadError": "Не удалось загрузить настройки псевдонима обнаружения: {error}.",
|
||||
"ccAliasSaveError": "Не удалось сохранить настройку псевдонима обнаружения: {error}.",
|
||||
"compatUpstreamHeadersLabel": "Дополнительные заголовки upstream",
|
||||
"compatUpstreamHeadersHint": "Настройка с высоким уровнем доверия - тот же уровень, что и редактирование API-учётных данных провайдера; использовать только доверенным администраторам. Применяется после того, как OmniRoute добавит авторизацию из API-ключа провайдера. Если пользовательский заголовок совпадает по имени с уже существующим (например, Authorization), ваше значение полностью заменяет автоматически созданный заголовок (включая Bearer token) - upstream увидит только введённое вами значение, а не ключ из настроек. Ошибка настройки может привести к 401 или поломке upstream-аутентификации. По одной строке на заголовок (например, дополнительный Authentication для некоторых шлюзов). Наведите курсор или сфокусируйте поле, чтобы увидеть предпросмотр. Сохраняется при потере фокуса, клике вне поля или закрытии панели.",
|
||||
"compatUpstreamHeaderName": "Имя заголовка",
|
||||
@@ -5443,8 +5455,8 @@
|
||||
"t3ChatWebCookieHint": "Откройте t3.chat → DevTools → Приложение → Локальное хранилище → https://t3.chat, скопируйте «convex-session-id». Затем откройте DevTools → Network и скопируйте полный заголовок Cookie из любого запроса в чате. Вставьте оба значения в поля ниже.",
|
||||
"t3ChatWebCookiePlaceholder": "выпуклый-session-id=abc123...",
|
||||
"grokWebCookieHint": "Grok Web Cookie Hint",
|
||||
"blockClaudeExtraUsageDescription": "__MISSING__:When enabled, OmniRoute marks this Claude connection unavailable as soon as the usage API reports queued extra usage, so fallback switches to another connection instead of continuing on pay-as-you-go extra billing.",
|
||||
"blockClaudeExtraUsageLabel": "__MISSING__:Block extra Claude usage",
|
||||
"blockClaudeExtraUsageDescription": "При включении OmniRoute помечает это подключение Claude как недоступное, как только API использования сообщает о наличии платного доп. трафика, так что fallback переключается на другое подключение вместо продолжения работы с оплатой по факту.",
|
||||
"blockClaudeExtraUsageLabel": "Блокировать доп. использование Claude",
|
||||
"disableCoolingDescription": "Пропускать временный кулдаун, чтобы это подключение оставалось доступным даже после устранимых ошибок (терминальные состояния, такие как banned/expired, по-прежнему применяются).",
|
||||
"disableCoolingLabel": "Отключить кулдаун для этого подключения",
|
||||
"bulkPasteAdded": "{count, plural, one {1 key added} other {# keys added}}",
|
||||
@@ -5623,13 +5635,13 @@
|
||||
"importGrokAuth": "Импортировать авторизацию Grok Build",
|
||||
"zedImportTitle": "Импортировать из связки ключей Zed",
|
||||
"zedImportDescription": "Найти учетные данные провайдеров ИИ (OpenAI, Anthropic, Google, Mistral, xAI), сохраненные Zed IDE в связке ключей ОС, и импортировать их как подключения. На этом компьютере должна быть установлена Zed IDE.",
|
||||
"zedImportButton": "__MISSING__:Import from Zed",
|
||||
"zedImportFailed": "__MISSING__:Zed import failed",
|
||||
"zedImportButton": "Импортировать из Zed",
|
||||
"zedImportFailed": "Импорт из Zed не удался",
|
||||
"zedImportHint": "Zed Import Hint",
|
||||
"zedImportNetworkError": "Zed Import Network Error",
|
||||
"zedImportNone": "Zed Import None",
|
||||
"zedImportSuccess": "__MISSING__:Imported {credentials} credential(s) from Zed for {providers} provider(s)",
|
||||
"zedImporting": "__MISSING__:Importing…",
|
||||
"zedImportSuccess": "Импортировано {credentials} учетная(ых) запись(ей) из Zed для {providers} провайдера(ов)",
|
||||
"zedImporting": "Импортируется…",
|
||||
"zedNoCredentials": "В связке ключей не найдено учетных данных Zed",
|
||||
"zedUnsupportedCredentials": "Найдено {count} учетных записей в связке ключей, но ни одна не соответствует поддерживаемым провайдерам",
|
||||
"zedManualTitle": "Ручной импорт токена",
|
||||
@@ -5775,7 +5787,7 @@
|
||||
"bailian-coding-plan": "Подключите Alibaba Coding Plan с помощью API-ключа.",
|
||||
"bedrock": "Нативная интеграция с Bedrock: для обнаружения моделей используются базовые модели Bedrock и профили вывода (inference profiles), а для чата — региональные API Bedrock Runtime Converse/ConverseStream.",
|
||||
"anthropic": "Подключите Anthropic с помощью API-ключа.",
|
||||
"ant-ling": "Зарегистрируйтесь и создайте ключ API в консоли API Ant Ling (https://chat.ant-ling.com/open), а затем вставьте его сюда. OmniRoute направляет трафик чата на https://api.ant-ling.com/v1/chat/completions; поставщик совместим с OpenAI, а также предоставляет поверхность, совместимую с Anthropic.",
|
||||
"ant-ling": "Ant Ling — (ant-ling) — ML/AI платформа с фокусом на NLP",
|
||||
"api-airforce": "Получите API-ключ на https://panel.api.airforce — OpenAI-совместимая конечная точка по адресу https://api.airforce/v1",
|
||||
"arcee-ai": "Получите API-ключ на arcee.ai",
|
||||
"azure-ai": "Foundry использует интерфейс OpenAI v1 с именами развертываний в качестве моделей. OmniRoute нормализует корневые URL-адреса ресурсов до конечных точек v1 chat и /models.",
|
||||
@@ -5796,7 +5808,7 @@
|
||||
"chutes": "Bearer API-ключ для совместимого с OpenAI шлюза Chutes.",
|
||||
"clarifai": "Clarifai предоставляет совместимый с OpenAI чат, ответы и /models по адресу /v2/ext/openai/v1. Для публичных моделей и моделей сообщества обычно требуется PAT; ключи с областью действия приложения работают только для ресурсов внутри этого приложения.",
|
||||
"cloudflare-ai": "Требуется API-токен И Account ID (можно найти на dash.cloudflare.com)",
|
||||
"clova-studio": "CLOVA Studio (HyperCLOVA X) совместима с OpenAI в /v1/openai. OmniRoute проверяет /v1/openai/models и направляет трафик чата в /v1/openai/chat/completions. Использует текущий хост clovastudio.stream.ntruss.com — устаревшая конечная точка clovastudio.apigw.ntruss.com устарела.",
|
||||
"clova-studio": "Clova Studio — (clova-studio) — Платформа AI от NAVER Cloud",
|
||||
"codestral": "Подключите Codestral с помощью API-ключа.",
|
||||
"cohere": "Пробный период: 1 000 API-запросов в месяц для тестирования, кредитная карта не требуется",
|
||||
"command-code": "Создайте или скопируйте API-ключ из Command Code, затем вставьте его сюда как Bearer-токен.",
|
||||
@@ -5841,9 +5853,9 @@
|
||||
"watsonx": "Шлюз моделей watsonx предоставляет OpenAI-совместимые эндпоинты /chat/completions и /models по пути /ml/gateway/v1.",
|
||||
"ideogram": "Получите API-ключ на ideogram.ai/docs/api",
|
||||
"iflytek": "Получите API-ключ на console.xfyun.cn",
|
||||
"inception": "Inception Labs совместима с OpenAI по адресу https://api.inceptionlabs.ai/v1. Mercury-2 — первая диффузионная LLM (dLLM) в каталоге. Генерация в 5–10 раз быстрее, чем сопоставимые модели авторегрессии, с вызовом инструментов, json_mode и структурированными выходными данными.",
|
||||
"inception": "Inception — (inception) — Платформа AI с флагманскими моделями",
|
||||
"inference-net": "Бесплатный баланс $25 при регистрации, а также возможность получения исследовательских грантов",
|
||||
"internlm": "Бесплатная ежемесячная квота: ~1 млн входных/3 млн выходных токенов (~10 об/мин)",
|
||||
"internlm": "InternLM — (internlm) — Открытые языковые модели от Shanghai AI Lab",
|
||||
"jina-ai": "API-ключ Bearer для Jina AI rerank API.",
|
||||
"jina-reader": "Подключите Jina Reader с помощью API-ключа.",
|
||||
"kenari": "Kenari предоставляет OpenAI-совместимый эндпоинт генерации чата по адресу https://kenari.id/v1/chat/completions, а также актуальный каталог /v1/models, включающий Claude, GPT, DeepSeek, GLM, Kimi и другие модели. OmniRoute использует протокол OpenAI и выводит список моделей через сквозную передачу.",
|
||||
@@ -5890,7 +5902,7 @@
|
||||
"perplexity": "Подключить Perplexity с помощью API-ключа.",
|
||||
"piapi": "Подключить PiAPI с помощью API-ключа.",
|
||||
"pioneer": "$75 бесплатных кредитов на использование — кредитная карта не требуется",
|
||||
"plamo": "PLaMo совместим с OpenAI по адресу https://api.platform.preferredai.jp/v1. Создано Preferred Networks и оптимизировано для японского языка. Документы в основном на японском языке.",
|
||||
"plamo": "Plamo — (plamo) — Языковые модели для корейского языка",
|
||||
"poe": "Poe предоставляет совместимые с OpenAI чат и ответы на https://api.poe.com/v1, с аутентифицированной проверкой баланса на /usage/current_balance.",
|
||||
"pollinations": "Бесплатный уровень без ключа: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Для премиум-моделей (claude, gemini, midijourney) требуется API-ключ Pollinations с enter.pollinations.ai.",
|
||||
"publicai": "Требуется API-ключ — разовый кредит при регистрации, далее платно",
|
||||
@@ -5902,7 +5914,7 @@
|
||||
"runwayml": "Генерация видео в Runway основана на задачах. OmniRoute отправляет задания text-to-video или image-to-video, опрашивает /v1/tasks/[id] и нормализует готовые видеовыходы обратно в ответ /v1/videos/generations, аналогичный OpenAI.",
|
||||
"sambanova": "$5 бесплатных кредитов при регистрации (срок действия 30 дней), кредитная карта не требуется",
|
||||
"sap": "Обнаружение моделей использует /v2/lm/scenarios/foundation-models/models на AI_API_URL. Запросы чата используют deploymentUrl/chat/completions и требуют AI-Resource-Group.",
|
||||
"sarvam": "Sarvam AI совместим с OpenAI на /v1. OmniRoute проверяет /v1/models и направляет трафик чата в /v1/chat/completions. Модели настроены на индийские языки.",
|
||||
"sarvam": "Sarvam AI — (sarvam) — Индийские языковые AI модели",
|
||||
"scaleway": "1 млн бесплатных токенов для новых аккаунтов — соответствие EU/GDPR (Париж), Qwen3 235B и Llama 70B",
|
||||
"sensenova": "Получить API-ключ на platform.sensenova.cn",
|
||||
"siliconflow": "$1 бесплатных кредитов плюс постоянно бесплатные модели после подтверждения личности",
|
||||
@@ -5919,7 +5931,7 @@
|
||||
"together": "Подключите Together AI с помощью API-ключа.",
|
||||
"tokenrouter": "TokenRouter предоставляет совместимую с OpenAI конечную точку генерации ответов чата по адресу https://api.tokenrouter.com/v1/chat/completions, а также рабочий каталог /v1/models. OmniRoute использует протокол OpenAI.",
|
||||
"topaz": "Подключите Topaz с помощью API-ключа.",
|
||||
"typhoon": "Typhoon совместим с OpenAI на /v1. Построен компанией SCB 10X (Таиланд); Typhoon-v2.5-30b-a3b-instruct — это первая тайская многоязычная модель.",
|
||||
"typhoon": "Typhoon — (typhoon) — Тайские языковые модели",
|
||||
"udio": "Вставьте сессионный cookie из udio.com (авторизация Supabase)",
|
||||
"uncloseai": "Авторизация не требуется. API принимает любую непустую строку в качестве ключа для идентификации.",
|
||||
"upstage": "Подключите Upstage с помощью API-ключа.",
|
||||
@@ -5932,7 +5944,7 @@
|
||||
"voyage-ai": "API-ключ Bearer для API эмбеддингов и ранжирования (rerank) Voyage AI.",
|
||||
"wafer": "API-ключ с https://wafer.ai",
|
||||
"wandb": "Подключите Weights & Biases Inference с помощью API-ключа.",
|
||||
"writer": "Writer Palmyra совместим с OpenAI по адресу https://api.writer.com/v1. Palmyra-x5 предлагает контекстное окно размером 1 миллион токенов.",
|
||||
"writer": "Writer — (writer) — Полный стек AI для предприятий",
|
||||
"x5lab": "X5Lab предоставляет совместимую с OpenAI конечную точку генерации ответов чата по адресу https://api.x5lab.dev/v1/chat/completions, а также актуальный каталог /v1/models. OmniRoute использует протокол OpenAI и выводит список моделей через passthrough.",
|
||||
"xai": "Подключите xAI (Grok) с помощью API-ключа.",
|
||||
"xiaomi-mimo": "Подключите Xiaomi MiMo с помощью API-ключа.",
|
||||
@@ -6006,14 +6018,50 @@
|
||||
"doubaoWebDesc": "Чат AI ByteDance через doubao.com",
|
||||
"overrideBaseUrlAdvanced": "Дополнительно: переопределить базовый URL",
|
||||
"overrideBaseUrlHint": "Дополнительно: укажите для этого встроенного провайдера пользовательскую конечную точку. Оставьте пустым, чтобы использовать значение по умолчанию.",
|
||||
"apiProtocolLabel": "API-протокол",
|
||||
"apiProtocolDefault": "Совместимость с OpenAI (по умолчанию)",
|
||||
"apiProtocolHint": "Некоторые поставщики публикуют одни и те же модели по нескольким протоколам. Оставьте значение по умолчанию, если вам не нужна альтернатива.",
|
||||
"bulkAddFormatHintCloudflare": "Один ключ на строку. Формат: name|accountId|apiKey (Cloudflare account ID + API-токен).",
|
||||
"lmarenaWebCookieHint": "Откройте arena.ai, войдите в систему, затем скопируйте весь заголовок Cookie из сетевого запроса (Network). Включите arena-auth-prod-v1.0 и arena-auth-prod-v1.1 (и последующие части, если они есть), желательно с cf_clearance. Не вставляйте только пустой cookie arena-auth-prod-v1. Необязательно: providerSpecificData.recaptchaV3Token, если create-evaluation по-прежнему возвращает 403.",
|
||||
"kimiOfficialSupporterBadge": "Друг-основатель",
|
||||
"kimiOfficialSupporterTooltip": "Kimi (Moonshot AI) — друг-основатель открытого кода OmniRoute",
|
||||
"kimiPartnerLinkNote": "Партнерская ссылка — поддерживает OmniRoute без дополнительных затрат с вашей стороны"
|
||||
"kimiPartnerLinkNote": "Партнерская ссылка — поддерживает OmniRoute без дополнительных затрат с вашей стороны",
|
||||
"ccAliasSectionTitle": "Зеркальные ID Claude Code",
|
||||
"ccAliasSectionHint": "Эти зеркала публикуют не-Claude модели под ID claude/<провайдер>/<модель>, чтобы Claude Code gateway model discovery мог их перечислить.",
|
||||
"ccAliasProviderLevelLabel": "Провайдер включён",
|
||||
"ccAliasModelOverridesLabel": "Переопределения моделей",
|
||||
"ccAliasModelOverrideAriaLabel": "Переопределение модели",
|
||||
"ccAliasStateInherit": "Наследовать",
|
||||
"ccAliasStateOn": "Вкл",
|
||||
"ccAliasStateOff": "Выкл",
|
||||
"ccAliasAddModelPlaceholder": "Добавить модель…",
|
||||
"ccAliasAddModelButton": "Добавить",
|
||||
"ccAliasLoadError": "Не удалось загрузить зеркальные ID Claude Code",
|
||||
"ccAliasSaveError": "Не удалось сохранить зеркальные ID Claude Code",
|
||||
"apiProtocolLabel": "Протокол API",
|
||||
"apiProtocolDefault": "OpenAI-совместимый (по умолчанию)",
|
||||
"apiProtocolHint": "Некоторые провайдеры публикуют одни и те же модели через несколько протоколов. Оставьте значение по умолчанию, если не требуется альтернатива.",
|
||||
"apiSettingsDescription": "Настройки протокола API, аудитории и заголовка источника для этого провайдера",
|
||||
"advancedTab": "Продвинутые",
|
||||
"duplicateName": "Провайдер с именем \"{name}\" уже существует",
|
||||
"shortcuts": "Быстрые ссылки",
|
||||
"modelsCount": "{count} модель(ей)",
|
||||
"showApiKey": "Показать API ключ",
|
||||
"disableProviderAutoDiscovery": "Отключить автообнаружение провайдера",
|
||||
"confirmRemove": "Удалить {name}?",
|
||||
"openaiCompatibleNoKeyWarning": "OpenAI-совместимому провайдеру без API ключа не хватает заголовка Authorization. Некоторые функции (например, проверка подключения к модели) могут не работать.",
|
||||
"llmProvider": "LLM провайдер",
|
||||
"embeddingProvider": "Провайдер эмбеддингов",
|
||||
"sttProvider": "STT провайдер",
|
||||
"ttsProvider": "TTS провайдер",
|
||||
"imageProvider": "Провайдер изображений",
|
||||
"audioGenerationProvider": "Провайдер генерации аудио",
|
||||
"videoGenerationProvider": "Провайдер генерации видео",
|
||||
"providerCapabilities": "Возможности провайдера",
|
||||
"capabilityHelpText": "Выберите, какие задачи может выполнять этот провайдер",
|
||||
"copyBaseUrl": "Копировать базовый URL",
|
||||
"dangerZoneTitle": "Зона опасности",
|
||||
"dangerZoneDescription": "Необратимые и деструктивные действия",
|
||||
"removeProviderButton": "Удалить провайдера",
|
||||
"exportConfig": "Экспорт конфигурации",
|
||||
"importProviderConfig": "Импорт конфигурации нового провайдера"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Настройки",
|
||||
@@ -6108,18 +6156,18 @@
|
||||
"requestBodyLimitSaving": "Saving...",
|
||||
"requestBodyLimitSave": "Save",
|
||||
"requestBodyLimitCurrent": "Current: {value}",
|
||||
"cacheConfigLoadFailed": "Не удалось загрузить настройки кэша.",
|
||||
"cacheConfigSaveSuccess": "Настройки кэша сохранены.",
|
||||
"cacheConfigSaveFailed": "Не удалось сохранить настройки кэша.",
|
||||
"modelCatalogTtlWholeNumberError": "Используйте целое число",
|
||||
"modelCatalogTtlMinimumError": "Минимум: {min} мс.",
|
||||
"modelCatalogTtlMaximumError": "Максимум: {max} мс.",
|
||||
"cacheConfigLoadFailed": "Не удалось загрузить конфигурацию кэша",
|
||||
"cacheConfigSaveSuccess": "Конфигурация кэша сохранена",
|
||||
"cacheConfigSaveFailed": "Не удалось сохранить конфигурацию кэша",
|
||||
"modelCatalogTtlWholeNumberError": "TTL должен быть целым числом",
|
||||
"modelCatalogTtlMinimumError": "TTL должен быть больше 0",
|
||||
"modelCatalogTtlMaximumError": "TTL не может быть больше 7 дней",
|
||||
"modelCatalogCacheTtl": "TTL кэша каталога моделей",
|
||||
"modelCatalogCacheTtlDescription": "Как долго ответы каталога моделей кэшируются перед обновлением",
|
||||
"modelCatalogCacheTtlLabel": "TTL кэша каталога моделей в миллисекундах",
|
||||
"modelCatalogCacheTtlSaving": "Сохранение...",
|
||||
"modelCatalogCacheTtlDescription": "Как долго кэшировать каталог моделей (в секундах)",
|
||||
"modelCatalogCacheTtlLabel": "TTL кэша",
|
||||
"modelCatalogCacheTtlSaving": "Сохранение…",
|
||||
"modelCatalogCacheTtlSave": "Сохранить",
|
||||
"modelCatalogCacheTtlCurrent": "Текущее: {value} мс",
|
||||
"modelCatalogCacheTtlCurrent": "Текущий TTL: {ttl} сек",
|
||||
"mitmProxy": "МИТМ-прокси",
|
||||
"pricing": "Цены",
|
||||
"storage": "Хранение",
|
||||
@@ -6342,62 +6390,7 @@
|
||||
"LOCAL_CORE_ENDPOINT_INVALID": "Локальный эндпоинт прокси-ядра недействителен; узлы SS/VMess/Trojan/VLESS были проигнорированы.",
|
||||
"NEEDS_CORE_NOT_CONFIGURED": "Эта подписка содержит узлы, которым требуется локальное прокси-ядро (SS/VMess/Trojan/VLESS); они не будут маршрутизироваться, пока вы не настроите SOCKS5-эндпоинт локального ядра.",
|
||||
"NO_USABLE_NODES": "Подписка не вернула доступных узлов (http/https/socks5 или узлов с локальным эндпоинтом ядра)."
|
||||
},
|
||||
"description": "Вставьте ссылку на подписку на прокси. После включения трафик маршрутизируется через пул прокси-серверов в глобальном режиме или режиме правила (указанного поставщика). Узлы подписки автоматически синхронизируются с пулом прокси-серверов и повторно используют существующие механизмы опроса, проверки работоспособности и защиты от утечек.",
|
||||
"addSubscription": "Добавить подписку",
|
||||
"newSubscription": "Добавить подписку",
|
||||
"editSubscription": "Изменить подписку",
|
||||
"name": "Имя",
|
||||
"namePlaceholder": "например Моя подписка А",
|
||||
"url": "URL-адрес подписки",
|
||||
"urlPlaceholder": "https://.../subscribe?token=...",
|
||||
"mode": "Режим",
|
||||
"globalMode": "Глобальный режим",
|
||||
"ruleMode": "Режим правил",
|
||||
"globalModeDesc": "Весь трафик провайдера проходит через пул прокси-серверов этой подписки.",
|
||||
"ruleModeDesc": "Трафик только выбранных провайдеров проходит через прокси; остальные подключаются напрямую.",
|
||||
"localCoreEndpoint": "Локальная конечная точка SOCKS5/HTTP (необязательно)",
|
||||
"localCoreEndpointPlaceholder": "носки5://127.0.0.1:1080",
|
||||
"localCoreEndpointDesc": "Принимает только 127.0.0.1/localhost (SS/VMess/Trojan/VLESS требует локального ядра Sing-Box/Clash).",
|
||||
"routeByProvider": "Маршрут по провайдеру (множественный выбор)",
|
||||
"loadingProviders": "Загрузка списка поставщиков…",
|
||||
"autoRefreshInterval": "Интервал автоматического обновления (минуты)",
|
||||
"enableAfterCreate": "Включить при создании (синхронизироваться и вступить в силу немедленно)",
|
||||
"saving": "Сохранение…",
|
||||
"saveChanges": "Сохранить изменения",
|
||||
"createSubscription": "Создать подписку",
|
||||
"loading": "Загрузка…",
|
||||
"noSubscriptions": "Подписок пока нет. Нажмите «Добавить подписку», чтобы начать.",
|
||||
"statusOk": "ОК",
|
||||
"statusError": "Ошибка",
|
||||
"statusEmpty": "Пустой",
|
||||
"global": "Глобальный",
|
||||
"rule": "Правило",
|
||||
"enabled": "Включено",
|
||||
"disabled": "Отключено",
|
||||
"nodeCount": "Узлы: {count}",
|
||||
"needsCoreCount": "{count} требуется локальное ядро",
|
||||
"lastSynced": "Последняя синхронизация: {time}",
|
||||
"consecutiveFailures": "{count} последовательных ошибок",
|
||||
"lastError": "Последняя ошибка: {time}",
|
||||
"coreHintTitle": "В этой подписке есть {count} узлов, которым требуется локальное прокси-ядро (SS/VMess/Trojan/VLESS и т. д.) и в настоящее время они не маршрутизируются.",
|
||||
"coreHintDesc": "Эти протоколы не могут быть перенаправлены напрямую с помощью OmniRoute. Запустите ядро Sing-Box или Clash (Clash.Meta) на своем компьютере, выставьте его как конечную точку SOCKS5/HTTP и заполните его через Edit (принимается только 127.0.0.1 / localhost).",
|
||||
"copy": "Копировать",
|
||||
"goConfigure": "Настроить",
|
||||
"disable": "Отключить",
|
||||
"enable": "Включить",
|
||||
"refreshNodes": "Обновить узлы",
|
||||
"edit": "Редактировать",
|
||||
"delete": "Удалить",
|
||||
"confirmDelete": "Вы уверены, что хотите удалить подписку «{name}»? Связанные прокси-узлы также будут удалены.",
|
||||
"nameRequired": "Пожалуйста, введите имя",
|
||||
"urlRequired": "Введите URL-адрес подписки",
|
||||
"ruleModeProviderRequired": "Пожалуйста, выберите хотя бы одного поставщика в режиме правил.",
|
||||
"saveFailed": "Сохранить не удалось",
|
||||
"loadFailed": "Не удалось загрузить список подписок.",
|
||||
"toggleFailed": "Не удалось переключить переключатель",
|
||||
"refreshFailed": "Не удалось обновить",
|
||||
"deleteFailed": "Не удалось удалить"
|
||||
}
|
||||
},
|
||||
"bulkHealthcheck": "Массовая проверка здоровья",
|
||||
"bulkHealthcheckDesc": "Проверьте все настроенные прокси по целевому URL, чтобы определить рабочие.",
|
||||
@@ -6828,7 +6821,7 @@
|
||||
"howPricingWorks": "Как работает ценообразование",
|
||||
"cacheWrite": "Запись в кэш",
|
||||
"unsaved": "несохраненный",
|
||||
"resetDefaults": "__MISSING__:Reset defaults",
|
||||
"resetDefaults": "Сбросить настройки по умолчанию",
|
||||
"saveProvider": "Сохранить поставщика",
|
||||
"model": "Модель",
|
||||
"models": "модели",
|
||||
@@ -7009,12 +7002,12 @@
|
||||
"compressionLiveZoneTitle": "Live Zone с выравниванием по кэшу",
|
||||
"compressionLiveZoneDesc": "Сохранять сжатый префикс диалога неизменным и обрабатывать только вновь добавленные элементы.",
|
||||
"compressionExclusionsTitle": "Исключения сжатия",
|
||||
"compressionExclusionsDesc": "Идентификаторы моделей или шаблоны поставщиков/моделей, которые никогда нельзя сжимать. `*` — единственный подстановочный знак (например, `openai/*`, `*embedding*`). Соответствующий запрос проходит через байтовую идентичность — механизм сжатия не запускается.",
|
||||
"compressionExclusionsPlaceholder": "Один шаблон в строке, например.\nopenai/text-embedding-3-large\nантропный/*",
|
||||
"compressionExclusionsSave": "Сохранить",
|
||||
"compressionExclusionsSaved": "Сохранено",
|
||||
"compressionExclusionsCount": "{count, plural, one {# exclusion} other {# exclusions}} настроен",
|
||||
"compressionExclusionsEmpty": "Исключения не настроены — каждая модель/конечная точка может быть сжата (поведение по умолчанию).",
|
||||
"compressionExclusionsDesc": "Список endpoint'ов, для которых сжатие пропускается",
|
||||
"compressionExclusionsPlaceholder": "напр. groq/*, claude-*",
|
||||
"compressionExclusionsSave": "Save",
|
||||
"compressionExclusionsSaved": "Saved",
|
||||
"compressionExclusionsCount": "{count, plural, one {# exclusion} other {# exclusions}} configured",
|
||||
"compressionExclusionsEmpty": "No exclusions configured — every model/endpoint is eligible for compression (default behavior).",
|
||||
"compressionCavemanConfig": "Caveman Engine Configuration",
|
||||
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
|
||||
"compressionCavemanPanelHint": "Включение/выключение и уровень настраиваются на панели:",
|
||||
@@ -7666,7 +7659,16 @@
|
||||
"enableCredentialRedaction": "Включить маскирование учетных данных",
|
||||
"enableCredentialRedactionDesc": "Очищает API-ключи, токены, приватные ключи и JWT из сообщений, вызовов инструментов и ответов.",
|
||||
"pricingAutoSyncDisabled": "Automatic Sync Disabled",
|
||||
"pricingAutoSyncEnabled": "Automatic Sync Enabled"
|
||||
"pricingAutoSyncEnabled": "Automatic Sync Enabled",
|
||||
"dataPreferences": "Предпочтения данных",
|
||||
"dataPreferencesDescription": "Параметры сбора данных и телеметрии",
|
||||
"userAttributeLabel": "Атрибут пользователя",
|
||||
"userAttributeTooltip": "Пользовательский атрибут, добавляемый к телеметрии (опционально)",
|
||||
"userAttributePlaceholder": "env: имя хоста, группа A/B и т. д.",
|
||||
"userAttributeApplied": "Применён: {value}",
|
||||
"allowCrashReporting": "Разрешить отчёты о сбоях",
|
||||
"crashReportingDescription": "Автоматически отправлять анонимные отчёты о сбоях для улучшения стабильности",
|
||||
"recordNestedUsageSwitchFromMedian": "Переключить на медиану"
|
||||
},
|
||||
"contextRtk": {
|
||||
"title": "RTK Engine",
|
||||
@@ -8930,7 +8932,16 @@
|
||||
"updatedShort": "Обновлено",
|
||||
"lastRefreshed": "Последнее обновление",
|
||||
"providerQuota": "Квота Провайдера",
|
||||
"providerQuotaHomeHint": "Живой статус по подключенным аккаунтам"
|
||||
"providerQuotaHomeHint": "Живой статус по подключенным аккаунтам",
|
||||
"tokensPerDay": "токенов/день",
|
||||
"tokensPerMonth": "токенов/месяц",
|
||||
"models": "модели",
|
||||
"providers": "провайдеры",
|
||||
"totalCostLabel": "Общая стоимость",
|
||||
"totalTokensLabel": "Всего токенов",
|
||||
"requestsLabel": "Запросы",
|
||||
"costPerDay": "стоимость/день",
|
||||
"costPerMonth": "стоимость/месяц"
|
||||
},
|
||||
"modals": {
|
||||
"waitingAuth": "Ожидание авторизации",
|
||||
@@ -9749,7 +9760,10 @@
|
||||
"minutesAgo": "{minutes}м назад",
|
||||
"hoursAgo": "{hours}ч назад",
|
||||
"daysAgo": "{days}д назад",
|
||||
"entries": "Записи"
|
||||
"entries": "Записи",
|
||||
"breadcrumb": "Кэш",
|
||||
"statsBreadcrumb": "Статистика",
|
||||
"configBreadcrumb": "Конфигурация"
|
||||
},
|
||||
"proxyConfigModal": {
|
||||
"levelGlobal": "Глобальный",
|
||||
@@ -9799,23 +9813,23 @@
|
||||
"deviceCodeVerificationUrl": "URL-адрес подтверждения",
|
||||
"deviceCodeYourCode": "Ваш код",
|
||||
"deviceCodeWaiting": "Ожидание авторизации...",
|
||||
"googleLoopbackTitle": "Вход в Google не может быть завершен с этого адреса.",
|
||||
"googleLoopbackWhatHappens": "Google публикует код авторизации только тогда, когда <code>{redirectUri}</code> доступен из браузера, который одобряет вход. Здесь этот адрес указывает на этот компьютер, а не на сервер OmniRoute, поэтому вместо перенаправления экран согласия зависает, и нет URL-адреса обратного вызова для копирования.",
|
||||
"googleLoopbackRecommended": "Рекомендуется — запустите это на своем компьютере, затем вставьте результат ниже:",
|
||||
"googleLoopbackHelperNote": "Он открывает согласие Google локально (где работает 127.0.0.1) и печатает однострочный объект omniroute-cred-v1.… blob. Вставьте этот большой двоичный объект в поле «Шаг 2» ниже — он принимает большой двоичный объект учетных данных, а также URL-адрес обратного вызова.",
|
||||
"googleLoopbackTunnelLabel": "Или перенаправьте порт панели управления через SSH и перезагрузите OmniRoute через туннель:",
|
||||
"googleLoopbackTunnelNote": "Замените {userPlaceholder} своим именем пользователя SSH, оставьте терминал открытым, затем откройте {localUrl} и снова подключитесь оттуда.",
|
||||
"googleLoopbackHeadlessAlt": "Для полностью автономного использования без локального обратного вызова <a>настройте свои собственные учетные данные Google OAuth</a> плюс общедоступный базовый URL-адрес.",
|
||||
"googleLoopbackTitle": "Google sign-in can't complete from this address",
|
||||
"googleLoopbackWhatHappens": "Google only releases the authorization code once <code>{redirectUri}</code> is reachable from the browser that approves the sign-in. Here that address points at this computer, not at the OmniRoute server — so the consent screen hangs instead of redirecting, and there is no callback URL to copy.",
|
||||
"googleLoopbackRecommended": "Recommended — run this on your own computer, then paste the result below:",
|
||||
"googleLoopbackHelperNote": "It opens the Google consent locally (where 127.0.0.1 works) and prints a one-line omniroute-cred-v1.… blob. Paste that blob into the Step 2 field below — it accepts a credential blob as well as a callback URL.",
|
||||
"googleLoopbackTunnelLabel": "Or forward the dashboard port over SSH and reload OmniRoute through the tunnel:",
|
||||
"googleLoopbackTunnelNote": "Replace {userPlaceholder} with your SSH username, keep the terminal open, then open {localUrl} and connect again from there.",
|
||||
"googleLoopbackHeadlessAlt": "For fully headless use with no local callback at all, <a>configure your own Google OAuth credentials</a> plus a public base URL.",
|
||||
"remoteAccessInfo": "Удаленный доступ. Поскольку вы получаете доступ к OmniRoute удаленно, после авторизации вы увидите страницу с ошибкой (localhost не найден). Это нормально — просто скопируйте полный URL-адрес из адресной строки браузера и вставьте его ниже.",
|
||||
"loopbackMismatchTitle": "Невозможно выполнить вход с этого адреса",
|
||||
"loopbackMismatchWhatHappened": "Что происходит",
|
||||
"loopbackMismatchExplanation": "После того как вы подтвердите вход в систему, {providerName} всегда отправляет браузер обратно на <code>{redirectUri}</code>. Этот адрес указывает на компьютер, на котором работает этот браузер, а не на сервер OmniRoute, поэтому код авторизации никогда не достигает OmniRoute, и провайдер не может войти в систему, не показывая ошибку.",
|
||||
"loopbackMismatchHowToFix": "Как это исправить",
|
||||
"loopbackMismatchStep1": "На этом компьютере откройте терминал и запустите SSH-туннель к серверу OmniRoute:",
|
||||
"loopbackMismatchStep1Note": "Замените {userPlaceholder} своим именем пользователя SSH. Держите этот терминал открытым до тех пор, пока соединение не станет активным — необходимы оба порта: один обслуживает панель мониторинга, другой принимает обратный вызов.",
|
||||
"loopbackMismatchStep2": "В этом браузере снова откройте OmniRoute через туннель:",
|
||||
"loopbackMismatchStep3": "Затем снова подключите {providerName} на новой вкладке. Обратный вызов теперь достигает сервера, и вход в систему завершается нормально.",
|
||||
"loopbackMismatchAlternative": "Нет доступа по SSH? Если этот провайдер предлагает вкладку импорта токенов, вместо этого подключитесь с помощью токена — этот путь не использует обратный вызов обратной связи.",
|
||||
"loopbackMismatchTitle": "Sign-in can't complete from this address",
|
||||
"loopbackMismatchWhatHappened": "What's happening",
|
||||
"loopbackMismatchExplanation": "After you approve the login, {providerName} always sends the browser back to <code>{redirectUri}</code>. That address points at the computer running this browser, not at the OmniRoute server — so the authorization code never reaches OmniRoute and the provider fails the sign-in without showing an error.",
|
||||
"loopbackMismatchHowToFix": "How to fix it",
|
||||
"loopbackMismatchStep1": "On this computer, open a terminal and start an SSH tunnel to the OmniRoute server:",
|
||||
"loopbackMismatchStep1Note": "Replace {userPlaceholder} with your SSH username. Keep this terminal open until the connection shows as active — both ports are needed: one serves the dashboard, the other receives the callback.",
|
||||
"loopbackMismatchStep2": "In this browser, reopen OmniRoute through the tunnel:",
|
||||
"loopbackMismatchStep3": "Then connect {providerName} again from the new tab. The callback now reaches the server and the login completes normally.",
|
||||
"loopbackMismatchAlternative": "No SSH access? If this provider offers a token import tab, connect with a token instead — that path doesn't use a loopback callback.",
|
||||
"step1OpenUrl": "Шаг 1. Откройте этот URL-адрес в своем браузере.",
|
||||
"copy": "Копировать",
|
||||
"step2PasteCallback": "Шаг 2. Вставьте сюда URL обратного вызова или код авторизации.",
|
||||
@@ -11402,7 +11416,7 @@
|
||||
}
|
||||
},
|
||||
"pageTitle": "Навыки агента",
|
||||
"pageSubtitle": "__MISSING__:Teach your agent to operate OmniRoute — 23 API areas + 21 CLI families",
|
||||
"pageSubtitle": "Teach your agent to operate OmniRoute — 23 API areas + 21 CLI families",
|
||||
"conceptCard": {
|
||||
"agent": {
|
||||
"title": "Навыки агента — Исходящие",
|
||||
@@ -11756,7 +11770,6 @@
|
||||
"danger": "Опасность",
|
||||
"requiresRestart": "Требуется перезапуск",
|
||||
"source": "Источник",
|
||||
"ccDiscoveryAliasesEnvWarning": "Активируется через переменную среды (EXPOSE_CC_DISCOVERY_ALIASES) — это переопределяет любой переключатель панели управления ниже.",
|
||||
"resetFlag": "Сбросить {label} до значения по умолчанию",
|
||||
"reset": "Сбросить",
|
||||
"loadFailed": "Не удалось загрузить флаги функций",
|
||||
@@ -11913,7 +11926,8 @@
|
||||
"SKILLS_SANDBOX_NETWORK_ENABLED": {
|
||||
"description": "Enable network access in the skills sandbox."
|
||||
}
|
||||
}
|
||||
},
|
||||
"ccDiscoveryAliasesEnvWarning": "Active via environment variable (EXPOSE_CC_DISCOVERY_ALIASES) — this overrides any dashboard toggle below."
|
||||
},
|
||||
"comboControl": {
|
||||
"title": "Combo Control Center",
|
||||
|
||||
Reference in New Issue
Block a user