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:
3g0r1ch
2026-08-06 06:09:05 +03:00
committed by GitHub
parent a9b4c3efff
commit 07cd4c0f2e

View File

@@ -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/&lt;provider&gt;/&lt;model&gt; 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/&lt;provider&gt;/&lt;model&gt; 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",