mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-06 15:22:12 +03:00
i18n(ru): complete Russian locale — fill 25 missing keys and 80 placeholders (#9001)
Validated in local merge-train T5 (base49+contributors+pacocartones)
This commit is contained in:
@@ -937,7 +937,7 @@
|
||||
"disabled": "Отключено",
|
||||
"featureFlagOmnirouteEmergencyFallbackDescription": "Перенаправлять запросы при исчерпании бюджета на резервный бесплатный провайдер/модель.",
|
||||
"featureFlagArenaEloSyncEnabledDescription": "Включить периодическую синхронизацию ELO из таблицы лидеров Arena AI для рейтинга интеллектуальности моделей.",
|
||||
"featureFlagExposeCcDiscoveryAliasesDescription": "__MISSING__:Advertise claude/<provider>/<model> mirror ids on /v1/models so Claude Code gateway model discovery lists non-Claude models. Warning: doubles catalog entries for all clients when enabled globally.",
|
||||
"featureFlagExposeCcDiscoveryAliasesDescription": "Публиковать claude/<провайдер>/<модель> зеркальные ID на /v1/models, чтобы Claude Code мог видеть не-Claude модели. Внимание: удваивает записи каталога для всех клиентов при глобальном включении.",
|
||||
"sidebar": {
|
||||
"home": "Главная",
|
||||
"dashboard": "Панель управления",
|
||||
@@ -1055,7 +1055,7 @@
|
||||
"combosLive": "Combo Studio",
|
||||
"combosLiveSubtitle": "Каскад маршрутизации в реальном времени",
|
||||
"compressionStudio": "Compression Studio",
|
||||
"compressionExclusions": "__MISSING__:Exclusions",
|
||||
"compressionExclusions": "Исключения",
|
||||
"contextSettingsSubtitle": "Глобальные настройки по умолчанию",
|
||||
"contextHeadroomSubtitle": "Табличное уплотнение",
|
||||
"contextSessionDedupSubtitle": "Межходовая дедупликация",
|
||||
@@ -1066,7 +1066,7 @@
|
||||
"contextUltraSubtitle": "Эвристическая обрезка",
|
||||
"contextOmniglyphSubtitle": "Контекст как изображения",
|
||||
"compressionStudioSubtitle": "Каскад движков в реальном времени",
|
||||
"compressionExclusionsSubtitle": "__MISSING__:Per-model/endpoint bypass",
|
||||
"compressionExclusionsSubtitle": "Обход для отдельных моделей/endpoint'ов",
|
||||
"chaosConfigSubtitle": "Мультимодельное параллельное выполнение",
|
||||
"routingSection": "Routing",
|
||||
"protocolsSection": "Protocols",
|
||||
@@ -1107,7 +1107,7 @@
|
||||
"settingsSecurity": "Security",
|
||||
"settingsAccessTokens": "Токены доступа",
|
||||
"settingsFeatureFlags": "Флаги функций",
|
||||
"settingsCache": "__MISSING__:Cache",
|
||||
"settingsCache": "Кэш",
|
||||
"settingsAuthz": "Authz",
|
||||
"settingsRouting": "Routing",
|
||||
"settingsResilience": "Resilience",
|
||||
@@ -1164,7 +1164,7 @@
|
||||
"logsSubtitle": "Application logs",
|
||||
"logsProxySubtitle": "Proxy traffic logs",
|
||||
"consoleLogsSubtitle": "Console output",
|
||||
"logsTimelineSubtitle": "__MISSING__:Visual request timeline",
|
||||
"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": "__MISSING__:Model catalog and response caching",
|
||||
"settingsCacheSubtitle": "Кэш каталога моделей и ответов",
|
||||
"settingsSidebar": "Sidebar",
|
||||
"settingsSidebarSubtitle": "Customize sidebar layout",
|
||||
"settingsAuthzSubtitle": "Политика маршрутизации инвентаря и обхода",
|
||||
@@ -1557,7 +1557,7 @@
|
||||
"settingsGeneralDescription": "Storage, database, and general instance configuration",
|
||||
"settingsAppearanceDescription": "Theme, branding, and visual customization",
|
||||
"settingsAiDescription": "AI behaviors, thinking budgets, vision, and memory settings",
|
||||
"settingsCacheDescription": "__MISSING__:TTL for model catalog cache entries",
|
||||
"settingsCacheDescription": "TTL для записей кэша каталога моделей",
|
||||
"settingsSecurityDescription": "Authentication, authorization, and access control settings",
|
||||
"featureFlags": "Флаги функций",
|
||||
"featureFlagsDescription": "Возможности системы управления и экспериментальные возможности",
|
||||
@@ -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": "Инструменты интерфейса командной строки",
|
||||
@@ -2946,14 +2953,36 @@
|
||||
"copilotReloadInstruction": "Затем перезапустите VS Code и укажите API-ключ в поле ввода.",
|
||||
"wireApiChatCompletions": "Завершения чата (/chat/completions)",
|
||||
"wireApiResponses": "API ответов (/responses)",
|
||||
"ccDiscoveryInfoButton": "__MISSING__:How to enable discovery in Claude Code",
|
||||
"ccDiscoveryInfoTooltip": "__MISSING__:Advertise non-Claude models under claude/<provider>/<model> mirror ids so Claude Code's gateway model discovery can list them. Doubles catalog entries for all clients when enabled globally.",
|
||||
"ccDiscoveryInfoLink": "__MISSING__:Open Feature Flags",
|
||||
"ccOnboardingTitle": "__MISSING__:settings.json for gateway model discovery",
|
||||
"ccOnboardingCopy": "__MISSING__:Copy",
|
||||
"ccOnboardingCopied": "__MISSING__:Copied",
|
||||
"ccOnboardingKeyPlaceholder": "__MISSING__:<your OmniRoute API key>",
|
||||
"ccOnboardingWindowNote": "__MISSING__:Claude Code assumes a 200K context window for any model id it does not recognize. For a model with a different real window, add CLAUDE_CODE_AUTO_COMPACT_WINDOW just under it so auto-compaction does not fire too early."
|
||||
"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": "Комбо",
|
||||
@@ -3597,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",
|
||||
@@ -3704,7 +3739,7 @@
|
||||
"modelsCount": "{count, plural, one {# модель} few {# модели} many {# моделей} other {# модели}}",
|
||||
"sectionTitle": "Интерфейс интеграции",
|
||||
"sectionDescription": "API, совместимые с OpenAI, и конечные точки операционных протоколов",
|
||||
"tabApis": "__MISSING__:APIs",
|
||||
"tabApis": "API",
|
||||
"tabProtocols": "Протоколы",
|
||||
"tabsAria": "Разделы конечной точки",
|
||||
"protocolsTitle": "Протоколы",
|
||||
@@ -3895,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": "Прокси конечных точек",
|
||||
@@ -5411,8 +5457,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}}",
|
||||
@@ -5591,13 +5637,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": "Ручной импорт токена",
|
||||
@@ -5743,7 +5789,7 @@
|
||||
"bailian-coding-plan": "Подключите Alibaba Coding Plan с помощью API-ключа.",
|
||||
"bedrock": "Нативная интеграция с Bedrock: для обнаружения моделей используются базовые модели Bedrock и профили вывода (inference profiles), а для чата — региональные API Bedrock Runtime Converse/ConverseStream.",
|
||||
"anthropic": "Подключите Anthropic с помощью API-ключа.",
|
||||
"ant-ling": "__MISSING__:Register and create an API key at the Ant Ling API console (https://chat.ant-ling.com/open), then paste it here. OmniRoute routes chat traffic to https://api.ant-ling.com/v1/chat/completions; the provider is OpenAI-compatible and also exposes an Anthropic-compatible surface.",
|
||||
"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.",
|
||||
@@ -5764,7 +5810,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": "__MISSING__:CLOVA Studio (HyperCLOVA X) is OpenAI-compatible on /v1/openai. OmniRoute probes /v1/openai/models and routes chat traffic to /v1/openai/chat/completions. Uses the current clovastudio.stream.ntruss.com host — the legacy clovastudio.apigw.ntruss.com endpoint is being deprecated.",
|
||||
"clova-studio": "Clova Studio — (clova-studio) — Платформа AI от NAVER Cloud",
|
||||
"codestral": "Подключите Codestral с помощью API-ключа.",
|
||||
"cohere": "Пробный период: 1 000 API-запросов в месяц для тестирования, кредитная карта не требуется",
|
||||
"command-code": "Создайте или скопируйте API-ключ из Command Code, затем вставьте его сюда как Bearer-токен.",
|
||||
@@ -5809,9 +5855,9 @@
|
||||
"watsonx": "Шлюз моделей watsonx предоставляет OpenAI-совместимые эндпоинты /chat/completions и /models по пути /ml/gateway/v1.",
|
||||
"ideogram": "Получите API-ключ на ideogram.ai/docs/api",
|
||||
"iflytek": "Получите API-ключ на console.xfyun.cn",
|
||||
"inception": "__MISSING__:Inception Labs is OpenAI-compatible at https://api.inceptionlabs.ai/v1. mercury-2 is the first diffusion LLM (dLLM) in the catalog — 5-10x faster generation than comparable autoregressive models, with tool calling, json_mode, and structured outputs.",
|
||||
"inception": "Inception — (inception) — Платформа AI с флагманскими моделями",
|
||||
"inference-net": "Бесплатный баланс $25 при регистрации, а также возможность получения исследовательских грантов",
|
||||
"internlm": "__MISSING__:Free monthly quota ~1M input / 3M output tokens (~10 RPM)",
|
||||
"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 и выводит список моделей через сквозную передачу.",
|
||||
@@ -5858,7 +5904,7 @@
|
||||
"perplexity": "Подключить Perplexity с помощью API-ключа.",
|
||||
"piapi": "Подключить PiAPI с помощью API-ключа.",
|
||||
"pioneer": "$75 бесплатных кредитов на использование — кредитная карта не требуется",
|
||||
"plamo": "__MISSING__:PLaMo is OpenAI-compatible at https://api.platform.preferredai.jp/v1. Built by Preferred Networks and optimized for Japanese. Docs are primarily in Japanese.",
|
||||
"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-ключ — разовый кредит при регистрации, далее платно",
|
||||
@@ -5870,7 +5916,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": "__MISSING__:Sarvam AI is OpenAI-compatible on /v1. OmniRoute probes /v1/models and routes chat traffic to /v1/chat/completions. Models are tuned for Indic languages.",
|
||||
"sarvam": "Sarvam AI — (sarvam) — Индийские языковые AI модели",
|
||||
"scaleway": "1 млн бесплатных токенов для новых аккаунтов — соответствие EU/GDPR (Париж), Qwen3 235B и Llama 70B",
|
||||
"sensenova": "Получить API-ключ на platform.sensenova.cn",
|
||||
"siliconflow": "$1 бесплатных кредитов плюс постоянно бесплатные модели после подтверждения личности",
|
||||
@@ -5887,7 +5933,7 @@
|
||||
"together": "Подключите Together AI с помощью API-ключа.",
|
||||
"tokenrouter": "TokenRouter предоставляет совместимую с OpenAI конечную точку генерации ответов чата по адресу https://api.tokenrouter.com/v1/chat/completions, а также рабочий каталог /v1/models. OmniRoute использует протокол OpenAI.",
|
||||
"topaz": "Подключите Topaz с помощью API-ключа.",
|
||||
"typhoon": "__MISSING__:Typhoon is OpenAI-compatible on /v1. Built by SCB 10X (Thailand); typhoon-v2.5-30b-a3b-instruct is a thai-first, multilingual model.",
|
||||
"typhoon": "Typhoon — (typhoon) — Тайские языковые модели",
|
||||
"udio": "Вставьте сессионный cookie из udio.com (авторизация Supabase)",
|
||||
"uncloseai": "Авторизация не требуется. API принимает любую непустую строку в качестве ключа для идентификации.",
|
||||
"upstage": "Подключите Upstage с помощью API-ключа.",
|
||||
@@ -5900,7 +5946,7 @@
|
||||
"voyage-ai": "API-ключ Bearer для API эмбеддингов и ранжирования (rerank) Voyage AI.",
|
||||
"wafer": "API-ключ с https://wafer.ai",
|
||||
"wandb": "Подключите Weights & Biases Inference с помощью API-ключа.",
|
||||
"writer": "__MISSING__:Writer Palmyra is OpenAI-compatible at https://api.writer.com/v1. palmyra-x5 offers a 1M-token context window.",
|
||||
"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-ключа.",
|
||||
@@ -5981,18 +6027,45 @@
|
||||
"cheaperInferenceSupporterBadge": "Друг открытого кода",
|
||||
"cheaperInferenceSupporterTooltip": "Cheaper Inference поддерживает OmniRoute как друг открытого кода",
|
||||
"kimiPartnerLinkNote": "Партнерская ссылка — поддерживает OmniRoute без дополнительных затрат с вашей стороны",
|
||||
"ccAliasSectionTitle": "__MISSING__:Expose in Claude Code (claude/…)",
|
||||
"ccAliasSectionHint": "__MISSING__:Advertise this provider's models under claude/<provider>/<model> mirror ids so Claude Code's gateway model discovery can list them. Off by default — enabling this doubles catalog entries for all clients.",
|
||||
"ccAliasProviderLevelLabel": "__MISSING__:Provider default",
|
||||
"ccAliasModelOverridesLabel": "__MISSING__:Per-model overrides",
|
||||
"ccAliasModelOverrideAriaLabel": "__MISSING__:Override for {modelId}",
|
||||
"ccAliasStateInherit": "__MISSING__:Inherit",
|
||||
"ccAliasStateOn": "__MISSING__:On",
|
||||
"ccAliasStateOff": "__MISSING__:Off",
|
||||
"ccAliasAddModelPlaceholder": "__MISSING__:Model id (e.g. gpt-4o)",
|
||||
"ccAliasAddModelButton": "__MISSING__:Add override",
|
||||
"ccAliasLoadError": "__MISSING__:Failed to load discovery-alias settings: {error}",
|
||||
"ccAliasSaveError": "__MISSING__:Failed to save discovery-alias setting: {error}"
|
||||
"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": "Настройки",
|
||||
@@ -6087,18 +6160,18 @@
|
||||
"requestBodyLimitSaving": "Saving...",
|
||||
"requestBodyLimitSave": "Save",
|
||||
"requestBodyLimitCurrent": "Current: {value}",
|
||||
"cacheConfigLoadFailed": "__MISSING__:Failed to load cache settings",
|
||||
"cacheConfigSaveSuccess": "__MISSING__:Cache settings saved",
|
||||
"cacheConfigSaveFailed": "__MISSING__:Failed to save cache settings",
|
||||
"modelCatalogTtlWholeNumberError": "__MISSING__:Use a whole number",
|
||||
"modelCatalogTtlMinimumError": "__MISSING__:Minimum is {min} ms",
|
||||
"modelCatalogTtlMaximumError": "__MISSING__:Maximum is {max} ms",
|
||||
"modelCatalogCacheTtl": "__MISSING__:Model Catalog Cache TTL",
|
||||
"modelCatalogCacheTtlDescription": "__MISSING__:How long model catalog responses are cached before refreshing",
|
||||
"modelCatalogCacheTtlLabel": "__MISSING__:Model catalog cache TTL in milliseconds",
|
||||
"modelCatalogCacheTtlSaving": "__MISSING__:Saving...",
|
||||
"modelCatalogCacheTtlSave": "__MISSING__:Save",
|
||||
"modelCatalogCacheTtlCurrent": "__MISSING__:Current: {value} ms",
|
||||
"cacheConfigLoadFailed": "Не удалось загрузить конфигурацию кэша",
|
||||
"cacheConfigSaveSuccess": "Конфигурация кэша сохранена",
|
||||
"cacheConfigSaveFailed": "Не удалось сохранить конфигурацию кэша",
|
||||
"modelCatalogTtlWholeNumberError": "TTL должен быть целым числом",
|
||||
"modelCatalogTtlMinimumError": "TTL должен быть больше 0",
|
||||
"modelCatalogTtlMaximumError": "TTL не может быть больше 7 дней",
|
||||
"modelCatalogCacheTtl": "TTL кэша каталога моделей",
|
||||
"modelCatalogCacheTtlDescription": "Как долго кэшировать каталог моделей (в секундах)",
|
||||
"modelCatalogCacheTtlLabel": "TTL кэша",
|
||||
"modelCatalogCacheTtlSaving": "Сохранение…",
|
||||
"modelCatalogCacheTtlSave": "Сохранить",
|
||||
"modelCatalogCacheTtlCurrent": "Текущий TTL: {ttl} сек",
|
||||
"mitmProxy": "МИТМ-прокси",
|
||||
"pricing": "Цены",
|
||||
"storage": "Хранение",
|
||||
@@ -6752,7 +6825,7 @@
|
||||
"howPricingWorks": "Как работает ценообразование",
|
||||
"cacheWrite": "Запись в кэш",
|
||||
"unsaved": "несохраненный",
|
||||
"resetDefaults": "__MISSING__:Reset defaults",
|
||||
"resetDefaults": "Сбросить настройки по умолчанию",
|
||||
"saveProvider": "Сохранить поставщика",
|
||||
"model": "Модель",
|
||||
"models": "модели",
|
||||
@@ -6932,13 +7005,13 @@
|
||||
"compressionPreserveSystemNever": "Никогда",
|
||||
"compressionLiveZoneTitle": "Live Zone с выравниванием по кэшу",
|
||||
"compressionLiveZoneDesc": "Сохранять сжатый префикс диалога неизменным и обрабатывать только вновь добавленные элементы.",
|
||||
"compressionExclusionsTitle": "__MISSING__:Compression Exclusions",
|
||||
"compressionExclusionsDesc": "__MISSING__:Model ids or provider/model patterns that must never be compressed. `*` is the only wildcard (e.g. `openai/*`, `*embedding*`). A matching request passes through byte-identical — no compression engine runs.",
|
||||
"compressionExclusionsPlaceholder": "__MISSING__:One pattern per line, e.g.\nopenai/text-embedding-3-large\nanthropic/*",
|
||||
"compressionExclusionsSave": "__MISSING__:Save",
|
||||
"compressionExclusionsSaved": "__MISSING__:Saved",
|
||||
"compressionExclusionsCount": "__MISSING__:{count, plural, one {# exclusion} other {# exclusions}} configured",
|
||||
"compressionExclusionsEmpty": "__MISSING__:No exclusions configured — every model/endpoint is eligible for compression (default behavior).",
|
||||
"compressionExclusionsTitle": "Исключения сжатия",
|
||||
"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": "Включение/выключение и уровень настраиваются на панели:",
|
||||
@@ -7590,7 +7663,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",
|
||||
@@ -8854,7 +8936,16 @@
|
||||
"updatedShort": "Обновлено",
|
||||
"lastRefreshed": "Последнее обновление",
|
||||
"providerQuota": "Квота Провайдера",
|
||||
"providerQuotaHomeHint": "Живой статус по подключенным аккаунтам"
|
||||
"providerQuotaHomeHint": "Живой статус по подключенным аккаунтам",
|
||||
"tokensPerDay": "токенов/день",
|
||||
"tokensPerMonth": "токенов/месяц",
|
||||
"models": "модели",
|
||||
"providers": "провайдеры",
|
||||
"totalCostLabel": "Общая стоимость",
|
||||
"totalTokensLabel": "Всего токенов",
|
||||
"requestsLabel": "Запросы",
|
||||
"costPerDay": "стоимость/день",
|
||||
"costPerMonth": "стоимость/месяц"
|
||||
},
|
||||
"modals": {
|
||||
"waitingAuth": "Ожидание авторизации",
|
||||
@@ -9673,7 +9764,10 @@
|
||||
"minutesAgo": "{minutes}м назад",
|
||||
"hoursAgo": "{hours}ч назад",
|
||||
"daysAgo": "{days}д назад",
|
||||
"entries": "Записи"
|
||||
"entries": "Записи",
|
||||
"breadcrumb": "Кэш",
|
||||
"statsBreadcrumb": "Статистика",
|
||||
"configBreadcrumb": "Конфигурация"
|
||||
},
|
||||
"proxyConfigModal": {
|
||||
"levelGlobal": "Глобальный",
|
||||
@@ -9723,23 +9817,23 @@
|
||||
"deviceCodeVerificationUrl": "URL-адрес подтверждения",
|
||||
"deviceCodeYourCode": "Ваш код",
|
||||
"deviceCodeWaiting": "Ожидание авторизации...",
|
||||
"googleLoopbackTitle": "__MISSING__:Google sign-in can't complete from this address",
|
||||
"googleLoopbackWhatHappens": "__MISSING__: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": "__MISSING__:Recommended — run this on your own computer, then paste the result below:",
|
||||
"googleLoopbackHelperNote": "__MISSING__: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": "__MISSING__:Or forward the dashboard port over SSH and reload OmniRoute through the tunnel:",
|
||||
"googleLoopbackTunnelNote": "__MISSING__:Replace {userPlaceholder} with your SSH username, keep the terminal open, then open {localUrl} and connect again from there.",
|
||||
"googleLoopbackHeadlessAlt": "__MISSING__:For fully headless use with no local callback at all, <a>configure your own Google OAuth credentials</a> plus a public base 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": "__MISSING__:Sign-in can't complete from this address",
|
||||
"loopbackMismatchWhatHappened": "__MISSING__:What's happening",
|
||||
"loopbackMismatchExplanation": "__MISSING__: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": "__MISSING__:How to fix it",
|
||||
"loopbackMismatchStep1": "__MISSING__:On this computer, open a terminal and start an SSH tunnel to the OmniRoute server:",
|
||||
"loopbackMismatchStep1Note": "__MISSING__: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": "__MISSING__:In this browser, reopen OmniRoute through the tunnel:",
|
||||
"loopbackMismatchStep3": "__MISSING__:Then connect {providerName} again from the new tab. The callback now reaches the server and the login completes normally.",
|
||||
"loopbackMismatchAlternative": "__MISSING__:No SSH access? If this provider offers a token import tab, connect with a token instead — that path doesn't use a loopback callback.",
|
||||
"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 обратного вызова или код авторизации.",
|
||||
@@ -11326,7 +11420,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": "Навыки агента — Исходящие",
|
||||
@@ -11837,7 +11931,7 @@
|
||||
"description": "Enable network access in the skills sandbox."
|
||||
}
|
||||
},
|
||||
"ccDiscoveryAliasesEnvWarning": "__MISSING__:Active via environment variable (EXPOSE_CC_DISCOVERY_ALIASES) — this overrides any dashboard toggle below."
|
||||
"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