OmniRoute/src/i18n/messages/uk-UA.json
diegosouzapw 3218563f32 chore: merge PRs #581, #582 + local improvements for rc16
Merged PRs:
- #582 — model prefix stripping option (closes #568)
- #581 — npm publish workflow fix (refs #579)

Local changes:
- Restored stashed i18n, CLI tools, and maintenance banner updates
- 926 tests passing
2026-03-24 13:32:05 -03:00

2693 lines
184 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"common": {
"save": "зберегти",
"cancel": "Скасувати",
"delete": "Видалити",
"loading": "Завантаження...",
"error": "Сталася помилка",
"success": "Успіх",
"confirm": "Ви впевнені?",
"refresh": "Оновити",
"close": "Закрити",
"add": "додати",
"edit": "Редагувати",
"search": "Пошук",
"back": "Назад",
"next": "Далі",
"submit": "Надіслати",
"reset": "Скинути",
"copy": "Копія",
"copied": "Скопійовано!",
"enabled": "Увімкнено",
"disabled": "Вимкнено",
"active": "Активний",
"inactive": "Неактивний",
"noData": "Немає даних",
"configure": "Налаштувати",
"manage": "Керувати",
"name": "Ім'я",
"actions": "Дії",
"status": "Статус",
"type": "Тип",
"model": "Модель",
"models": "моделі",
"provider": "Провайдер",
"account": "Обліковий запис",
"time": "час",
"details": "Подробиці",
"created": "Створено",
"lastUsed": "Останнє використання",
"loadMore": "Завантажити більше",
"noResults": "Результатів не знайдено",
"reloadPage": "Перезавантажити сторінку",
"connected": "Підключено",
"disconnected": "Відключено",
"notConfigured": "Не налаштовано",
"testConnection": "Тестове підключення",
"enable": "Увімкнути",
"disable": "Вимкнути",
"columns": "Стовпці",
"newest": "Найновіший",
"oldest": "Найстаріший",
"all": "всі",
"none": "Жодного",
"yes": "так",
"no": "немає",
"warning": "Попередження",
"note": "Примітка",
"free": "безкоштовно",
"skipToContent": "Перейти до вмісту",
"maintenanceServerIssues": "Server is experiencing issues. Some features may be unavailable.",
"maintenanceServerUnreachable": "Server is unreachable. Reconnecting..."
},
"sidebar": {
"home": "додому",
"dashboard": "Приладова панель",
"providers": "Провайдери",
"combos": "Комбо",
"usage": "Використання",
"analytics": "Аналітика",
"costs": "Витрати",
"health": "Здоров'я",
"limits": "Ліміти та квоти",
"cliTools": "Інструменти CLI",
"media": "Медіа",
"settings": "Налаштування",
"translator": "Перекладач",
"docs": "документи",
"issues": "Питання",
"apiManager": "Менеджер API",
"logs": "Журнали",
"auditLog": "Журнал аудиту",
"shutdown": "Вимкнення",
"restart": "Перезапустіть",
"shutdownConfirm": "Вимкнути OmniRoute?",
"restartConfirm": "Перезапустити OmniRoute?",
"version": "v{version}",
"debug": "Налагодження",
"system": "система",
"help": "Довідка",
"serverDisconnected": "Сервер відключено",
"serverDisconnectedMsg": "Проксі-сервер зупинено або перезавантажується.",
"expandSidebar": "Розгорнути бічну панель",
"collapseSidebar": "Згорнути бічну панель",
"themes": "Themes",
"presetColors": "Popular colors",
"createTheme": "Create theme",
"chooseColor": "Pick one color",
"themeCoral": "Coral",
"themeBlue": "Blue",
"themeRed": "Red",
"themeGreen": "Green",
"themeViolet": "Violet",
"themeOrange": "Orange",
"themeCyan": "Cyan",
"endpoints": "Кінцеві точки",
"playground": "Playground",
"agents": "Агенти",
"cliToolsShort": "Інструменти",
"autoCombo": "Auto Combo",
"searchTools": "Search Tools"
},
"themesPage": {
"title": "Themes",
"description": "Choose a preset theme or create your own with a single color",
"presetColors": "Popular colors",
"customTheme": "Custom theme",
"customThemeDesc": "Click create theme and pick one color",
"createTheme": "Create theme",
"activePreset": "Active theme"
},
"header": {
"logout": "Вийти",
"language": "Мова",
"providers": "Провайдери",
"providerDescription": "Керуйте з’єднаннями постачальників AI",
"combos": "Комбо",
"comboDescription": "Комбіновані моделі з резервним варіантом",
"usage": "Використання та аналітика",
"usageDescription": "Відстежуйте використання API, використання маркерів і журнали запитів",
"analytics": "Аналітика",
"analyticsDescription": "Діаграми, тенденції та аналізи",
"cliTools": "Інструменти CLI",
"cliToolsDescription": "Налаштувати інструменти CLI",
"home": "додому",
"homeDescription": "Ласкаво просимо до OmniRoute",
"endpoint": "Endpoints",
"endpointDescription": "Manage proxy endpoints, MCP, A2A, and API endpoints",
"settings": "Налаштування",
"settingsDescription": "Керуйте своїми вподобаннями",
"openaiCompatible": "Сумісність з OpenAI",
"anthropicCompatible": "Антропна сумісність",
"media": "Media",
"mediaDescription": "Generate images, videos, and music",
"themes": "Themes",
"themesDescription": "Choose a color theme for the whole dashboard panel",
"mcp": "MCP",
"mcpDescription": "Model Context Protocol server management and tools",
"a2a": "A2A",
"a2aDescription": "Agent-to-Agent protocol tasks and observability"
},
"home": {
"quickStart": "Швидкий старт",
"quickStartDesc": "Встаньте та побігайте за 4 кроки. Підключити провайдерів, моделі маршрутів, контролювати все.",
"fullDocs": "Повні документи",
"step1Title": "1. Створіть ключ API",
"step1Desc": "Перейдіть до <endpoint>Endpoint</endpoint> -> Зареєстровані ключі. Згенеруйте один ключ для кожного середовища.",
"step2Title": "2. Підключити провайдерів",
"step2Desc": "Додайте облікові записи в <providers>Providers</providers>. Підтримує OAuth, ключ API та безкоштовні рівні.",
"step3Title": "3. Вкажіть свого клієнта",
"step3Desc": "Установіть базову URL-адресу на {url} у своєму клієнті IDE або API.",
"step4Title": "4. Моніторинг і оптимізація",
"step4Desc": "Відстежуйте токени, вартість і помилки в <logs>Request Logs</logs> та <analytics>Analytics</analytics>.",
"providersOverview": "Огляд постачальників",
"configuredOf": "{configured} налаштовано з {total} доступних постачальників",
"noModelsAvailable": "Для цього постачальника немає доступних моделей.",
"configureFirst": "Спочатку налаштуйте підключення в {providers}",
"configureProvider": "Налаштувати постачальника",
"modelAvailable": "Доступна модель {count}",
"modelsAvailable": "Доступні моделі {count}",
"connectionsActive": "{count} підключення активне",
"connectionsActivePlural": "{count} активних підключень",
"copyModelName": "Скопіюйте назву моделі",
"documentation": "Документація",
"healthMonitor": "Монітор здоров'я",
"reportIssue": "Повідомити про проблему",
"activeError": "{active} активний · {errors} помилка",
"oauthLabel": "OAuth",
"apiKeyLabel": "Ключ API",
"requestsShort": "{count} вимагається",
"providerModelsTitle": "{provider} - Моделі",
"copiedModel": "Скопійовано: {model}",
"aliasLabel": "псевдонім"
},
"analytics": {
"title": "Аналітика",
"overviewDescription": "Відстежуйте шаблони використання API, споживання маркерів, витрати та тенденції активності в усіх постачальників і моделей.",
"evalsDescription": "Запустіть пакети оцінювання, щоб протестувати та перевірити кінцеві точки LLM. Порівняйте якість моделі, виявіть регресії та порівняйте затримку.",
"overview": "Огляд",
"evals": "Оцінки"
},
"apiManager": {
"title": "Ключі API",
"createKey": "Створити ключ API",
"key": "ключ",
"revokeKey": "Відкликати ключ",
"revokeConfirm": "Ви впевнені, що бажаєте відкликати цей ключ API?",
"noKeys": "Ключів API ще немає",
"noKeysDesc": "Створіть свій перший ключ API для автентифікації запитів до кінцевої точки",
"keyLabel": "Мітка ключа",
"permissions": "Дозволи",
"expiresAt": "Термін дії закінчується",
"never": "Ніколи",
"revoke": "Відкликати",
"showKey": "Показати ключ",
"hideKey": "Приховати ключ",
"copyKey": "Копіювати ключ API",
"allModels": "Всі моделі",
"selectedModels": "Вибрані моделі",
"readOnly": "Тільки для читання",
"fullAccess": "Повний доступ",
"keyManagement": "Керування ключами API",
"keyManagementDesc": "Створюйте та керуйте ключами API для автентифікації запитів до кінцевої точки",
"totalKeys": "Всього ключів",
"restricted": "Обмежений",
"totalRequests": "Загальна кількість запитів",
"modelsAvailable": "Доступні моделі",
"registeredKeys": "Зареєстровані ключі",
"keysRegistered": "Зареєстровано {count} ключів",
"keyRegistered": "Ключ {count} зареєстровано",
"keysSecurityNote": "Кожен ключ ізолює відстеження використання та може бути відкликаний незалежно. Ключі маскуються після створення для безпеки.",
"createFirstKey": "Створіть свій перший ключ",
"name": "Ім'я",
"usage": "Використання",
"created": "Створено",
"actions": "Дії",
"reqs": "вимоги",
"neverUsed": "Ніколи не використовувався",
"deleteConfirm": "Видалити цей ключ API?",
"usageTips": "Поради щодо використання",
"tipAuth": "Використовуйте ключі API у заголовку авторизації як носій YOUR_KEY",
"tipSecure": "Ключі показуються лише один раз під час створення — зберігайте їх надійно",
"tipSeparate": "Створіть окремі ключі для різних клієнтів або середовищ",
"tipRestrict": "Обмежте ключі певними моделями для кращої безпеки та контролю витрат",
"keyName": "Назва ключа",
"keyNamePlaceholder": "наприклад, ключ виробництва, ключ розробки",
"keyNameDesc": "Виберіть описову назву, щоб визначити призначення цього ключа",
"keyCreated": "Ключ API створено",
"keyCreatedSuccess": "Ключ успішно створено!",
"keyCreatedNote": "Скопіюйте та збережіть цей ключ зараз — він більше не відображатиметься.",
"done": "Готово",
"savePermissions": "Зберегти дозволи",
"allowAll": "Дозволити всім",
"restrict": "Обмежити",
"allowAllInfo": "Цей ключ може отримати доступ до всіх доступних моделей.",
"restrictInfo": "Цей ключ має доступ до {selected} з {total} моделей.",
"selected": "Вибрано {count}",
"all": "всі",
"clear": "ясно",
"searchModels": "Пошук моделей за назвою або постачальником...",
"noModelsFound": "Моделі не знайдено",
"keyNameRequired": "Потрібно вказати назву ключа",
"keyNameTooLong": "Назва ключа має містити не більше {max} символів",
"keyNameInvalid": "Назва ключа може містити лише літери, цифри, пробіли, дефіси та підкреслення",
"invalidKeyName": "Недійсна назва ключа",
"failedCreateKey": "Не вдалося створити ключ",
"failedCreateKeyRetry": "Не вдалося створити ключ. Спробуйте ще раз.",
"invalidKeyId": "Недійсний ідентифікатор ключа",
"failedDeleteKey": "Не вдалося видалити ключ",
"failedDeleteKeyRetry": "Не вдалося видалити ключ. Спробуйте ще раз.",
"invalidModelsSelection": "Недійсний вибір моделей",
"cannotSelectMoreThanModels": "Не можна вибрати більше ніж {max} моделей",
"failedUpdatePermissions": "Не вдалося оновити дозволи",
"failedUpdatePermissionsRetry": "Не вдалося оновити дозволи. Спробуйте ще раз.",
"unknownProvider": "невідомий",
"copyMaskedKey": "Копіювати замаскований ключ",
"modelsCount": "{count, plural, one {# model} other {# models}}",
"lastUsedOn": "Останній: {date}",
"editPermissions": "Права на редагування",
"deleteKey": "Видалити ключ",
"model": "Модель {count}",
"models": "{count} моделей",
"permissionsTitle": "Дозволи: {name}",
"allowAllDesc": "Цей ключ може отримати доступ до всіх доступних моделей.",
"restrictDesc": "Цей ключ має доступ до {selectedCount} з {totalModels} моделей.",
"selectedCount": "Вибрано {count}",
"autoResolve": "Auto-Resolve",
"autoResolveDesc": "Auto-resolve ambiguous model names to native provider for this API key.",
"keyActive": "Key Active",
"keyActiveDesc": "Enable or disable this API key. Disabled keys are immediately rejected with 403.",
"accessSchedule": "Access Schedule",
"accessScheduleDesc": "Restrict access to specific hours and days of the week.",
"scheduleFrom": "From",
"scheduleUntil": "Until",
"scheduleDays": "Days",
"scheduleTimezone": "Timezone",
"scheduleTimezoneHint": "Use IANA timezone names, e.g. America/New_York, Europe/Berlin",
"scheduleActive": "Schedule",
"disabled": "Disabled",
"daySun": "Sun",
"dayMon": "Mon",
"dayTue": "Tue",
"dayWed": "Wed",
"dayThu": "Thu",
"dayFri": "Fri",
"daySat": "Sat",
"keyOnlyAvailableAtCreation": "Full key available only at creation time — copy it when you first create the key"
},
"auditLog": {
"title": "Журнал аудиту",
"searchPlaceholder": "Пошукові дії...",
"action": "Дія",
"actor": "Актор",
"target": "Цільова",
"ipAddress": "IP-адреса",
"timestamp": "Мітка часу",
"noEntries": "Записів аудиту не знайдено",
"filterByAction": "Фільтрувати за дією...",
"filterByActor": "Фільтрувати за актором...",
"filterEntriesAria": "Фільтрувати записи журналу аудиту",
"filterByActionTypeAria": "Фільтрувати за типом дії",
"filterByActorAria": "Фільтрувати за актором",
"refreshAuditLogAria": "Оновити журнал аудиту",
"tableAria": "Записи журналу аудиту",
"failedFetchAuditLog": "Не вдалося отримати журнал аудиту",
"notAvailable": "—",
"description": "Адміністративні дії та заходи безпеки",
"showing": "Показано {count} записів (зміщення {offset})",
"previous": "Попередній"
},
"media": {
"title": "Медіа-майданчик",
"subtitle": "Генеруйте зображення, відео та музику",
"model": "Model",
"prompt": "Prompt",
"generate": "Згенерувати",
"generating": "Generating...",
"loadingModels": "Loading available models...",
"noModels": "No models available. Configure providers with media capabilities first.",
"error": "Generation Failed",
"result": "Result",
"imageDescription": "Generate images from text prompts using OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI and more.",
"videoDescription": "Create videos with AnimateDiff, Stable Video Diffusion via ComfyUI or SD WebUI.",
"musicDescription": "Compose music using Stable Audio Open or MusicGen via ComfyUI."
},
"cliTools": {
"title": "Інструменти CLI",
"noActiveProviders": "Немає активних провайдерів",
"noActiveProvidersDesc": "Спочатку додайте та підключіть постачальників, щоб налаштувати інструменти CLI.",
"mapModels": "Моделі карт",
"testConnection": "Тестове підключення",
"connectionStatus": "Статус підключення",
"configureEndpoint": "Налаштувати кінцеву точку",
"instructions": "Інструкції",
"modelMapping": "Відображення моделі",
"baseUrl": "Базовий URL",
"apiKey": "Ключ API",
"configured": "Налаштовано",
"notConfigured": "Не налаштовано",
"notInstalled": "Не встановлено",
"custom": "Custom",
"unknown": "Невідомий",
"lastSavedAt": "Востаннє збережено: {date}",
"never": "Ніколи",
"justNow": "тільки зараз",
"minutesAgoShort": "{count}хв тому",
"hoursAgoShort": "{count} год тому",
"daysAgoShort": "{count} дн. тому",
"monthsAgoShort": "{count}міс. тому",
"yearsAgoShort": "{count}р тому",
"runtimeCheckFailed": "Помилка перевірки виконання",
"yourApiKeyPlaceholder": "ваш API-ключ",
"modelPlaceholder": "постачальник/ідентифікатор моделі",
"configurationSaved": "Конфігурацію успішно збережено.",
"failedToSave": "Не вдалося зберегти конфігурацію.",
"noApiKeysCreateOne": "Немає ключів API створіть один на сторінці «Ключі».",
"defaultOmnirouteKey": "sk_omniroute (за замовчуванням)",
"selectModel": "Виберіть Модель",
"selectModelForAlias": "Виберіть модель для {alias}",
"selectModelForTool": "Виберіть модель для {tool}",
"select": "Виберіть",
"clear": "ясно",
"comingSoon": "Скоро буде",
"checkingRuntime": "Перевірка стану виконання...",
"guideOnlyIntegration": "Інтеграція лише з довідниками (не потрібно локальне середовище виконання)",
"cliRuntimeDetected": "Середовище виконання CLI виявлено та готове",
"cliFoundNotRunnable": "CLI знайдено, але не можна запустити{reason}",
"cliRuntimeNotDetected": "Середовище виконання CLI не виявлено",
"binary": "Двійковий",
"configPath": "Шлях конфігурації",
"configPathShort": "Конфігурація",
"failedCheckRuntimeStatus": "Не вдалося перевірити стан виконання.",
"copy": "Копія",
"copied": "Скопійовано",
"copyConfig": "Копіювати конфіг",
"saveConfig": "Зберегти конфігурацію",
"selectionSaved": "Вибір збережено",
"guide": "Гід",
"detected": "Виявлено",
"notReady": "Не готовий",
"active": "Активний",
"inactive": "Неактивний",
"startMitm": "Запустіть MITM",
"stopMitm": "Зупинити MITM",
"mitmStarted": "MITM успішно стартував!",
"mitmStopped": "MITM успішно зупинено!",
"failedStart": "Не вдалося запустити MITM",
"failedStop": "Не вдалося зупинити MITM",
"saveMappings": "Зберегти відображення",
"mappingsSaved": "Карти збережено!",
"failedSaveMappings": "Не вдалося зберегти зіставлення",
"howItWorks": "Як це працює:",
"antigravityHowWorksDesc": "Антигравітація надсилає запити до кінцевої точки Google. MITM перехоплює та перенаправляє їх на OmniRoute.",
"antigravityStep1": "1. Запустіть MITM для маршрутизації запитів через OmniRoute.",
"antigravityStep2Prefix": "2. Додайте",
"antigravityStep2Suffix": "у ваш файл hosts як 127.0.0.1.",
"antigravityStep3": "3. Відкрийте Антигравітацію, і запити будуть надсилатися через проксі.",
"sudoPasswordRequiredTitle": "Потрібен пароль Sudo",
"sudoPasswordHint": "Пароль адміністратора потрібен для зміни параметрів файлу хостів і проксі-сервера системи.",
"enterSudoPassword": "Введіть пароль sudo",
"sudoPasswordRequiredError": "Потрібен пароль Sudo.",
"cancel": "Скасувати",
"confirm": "Підтвердити",
"settingsApplied": "Налаштування успішно застосовано!",
"failedApplySettings": "Не вдалося застосувати налаштування",
"settingsReset": "Налаштування успішно скинуто!",
"failedResetSettings": "Не вдалося скинути налаштування",
"backupRestored": "Резервну копію відновлено!",
"failedRestore": "Не вдалося відновити",
"checkingCli": "Перевірка {tool} CLI...",
"cliNotRunnable": "{tool} CLI встановлено, але не працює",
"cliNotInstalled": "{tool} CLI не встановлено",
"cliNotDetected": "{tool} CLI не виявлено",
"cliDetectedReady": "{tool} CLI виявлено та готово",
"cliFoundFailedHealthcheck": "Знайдено {tool} CLI, але не вдалося перевірити працездатність під час виконання{reason}.",
"installCliPrompt": "Щоб використовувати цю функцію, установіть {tool} CLI.",
"installCodexPrompt": "Будь ласка, встановіть Codex CLI, щоб використовувати функцію автоматичного застосування.",
"hide": "Сховати",
"howToInstall": "Як встановити",
"installationGuide": "Керівництво по установці",
"platforms": "macOS / Linux / Windows:",
"afterInstallationRun": "Після установки запустіть",
"toVerify": "для перевірки.",
"current": "поточний",
"baseUrlPlaceholder": "https://.../v1",
"resetToDefault": "Скинути до замовчування",
"providerModelPlaceholder": "постачальник/ідентифікатор моделі",
"apply": "Застосувати",
"reset": "Скинути",
"manualConfig": "Конфігурація вручну",
"backups": "Резервні копії",
"configBackups": "Резервне копіювання конфігурації",
"noBackupsYet": "Резервних копій ще немає. Резервні копії створюються автоматично перед кожним застосуванням або скиданням.",
"restore": "Відновити",
"backupRestoredReloading": "Резервну копію відновлено! Статус перезавантаження...",
"failedRestoreBackup": "Не вдалося відновити резервну копію",
"applied": "Застосовується!",
"failed": "Не вдалося",
"resetDone": "Скинути!",
"omnirouteConfiguredOpenAiCompatible": "OmniRoute налаштовано як постачальник, сумісний з OpenAI",
"provider": "Провайдер",
"model": "Модель",
"providers": "Провайдери",
"auth": "Авт",
"noApiKeysAvailable": "Немає доступних ключів API",
"usingDefaultOmniroute": "За замовчуванням: sk_omniroute",
"updateConfig": "Оновити конфігурацію",
"applyConfig": "Застосувати конфігурацію",
"noBackupsAvailable": "Немає резервних копій.",
"profileSaved": "Профіль \"{name}\" збережено!",
"failedSaveProfile": "Не вдалося зберегти профіль",
"profileActivated": "Профіль активований!",
"failedActivateProfile": "Не вдалося активувати профіль",
"profiles": "Профілі",
"savedProfiles": "Збережені профілі",
"noProfilesYet": "Ще немає збережених профілів. Збережіть поточну конфігурацію як профіль нижче.",
"activate": "активувати",
"deleteProfile": "Видалити профіль",
"profileNamePlaceholder": "Назва профілю (наприклад, особистий обліковий запис)",
"saveCurrent": "Зберегти поточне",
"codexAuthNotePrefix": "Codex використовує",
"codexAuthNoteMiddle": "з",
"codexAuthNoteSuffix": "Натисніть «Застосувати», щоб виконати автоматичне налаштування.",
"claudeManualConfiguration": "Claude CLI - Налаштування вручну",
"codexManualConfiguration": "Codex CLI - Ручна конфігурація",
"droidManualConfiguration": "Заводський дроїд - налаштування вручну",
"openClawManualConfiguration": "Open Claw - налаштування вручну",
"clineManualConfiguration": "Ручне налаштування Cline",
"kiloManualConfiguration": "Налаштування коду кіло вручну",
"toolDescriptions": {
"antigravity": "Google Antigravity IDE з MITM",
"claude": "Антропний код Клода CLI",
"codex": "OpenAI Codex CLI",
"droid": "Factory Droid AI Assistant",
"openclaw": "Open Claw AI Assistant",
"cline": "Cline AI Coding Assistant CLI",
"kilo": "Кіло Код AI Assistant CLI",
"cursor": "Редактор коду Cursor AI",
"continue": "Продовжити AI Assistant",
"opencode": "OpenCode AI coding agent (Terminal)",
"kiro": "Amazon Kiro — AI-powered IDE"
},
"guides": {
"cursor": {
"notes": {
"0": "Для використання цієї функції потрібен обліковий запис Cursor Pro.",
"1": "Курсор направляє запити через власний сервер, тому локальна кінцева точка не підтримується. Увімкніть Cloud Endpoint у налаштуваннях."
},
"steps": {
"1": {
"title": "Відкрийте налаштування",
"desc": "Перейдіть до Налаштування -> Моделі"
},
"2": {
"title": "Увімкнути OpenAI API",
"desc": "Увімкніть параметр «Ключ API OpenAI»."
},
"3": {
"title": "Базовий URL"
},
"4": {
"title": "Ключ API"
},
"5": {
"title": "Додати спеціальну модель",
"desc": "Натисніть «Переглянути всю модель» -> «Додати спеціальну модель»"
},
"6": {
"title": "Виберіть Модель"
}
}
},
"continue": {
"steps": {
"1": {
"title": "Відкрийте Config",
"desc": "Відкрийте файл конфігурації Продовжити"
},
"2": {
"title": "Ключ API"
},
"3": {
"title": "Виберіть Модель"
},
"4": {
"title": "Додати конфігурацію моделі",
"desc": "Додайте таку конфігурацію до свого масиву моделей:"
}
}
},
"opencode": {
"steps": {
"1": {
"title": "Install OpenCode",
"desc": "Install via npm: npm install -g opencode-ai"
},
"2": {
"title": "API Key"
},
"3": {
"title": "Set Base URL",
"desc": "opencode config set baseUrl {{baseUrl}}"
},
"4": {
"title": "Select Model"
}
}
},
"kiro": {
"steps": {
"1": {
"title": "Open Kiro Settings",
"desc": "Go to Settings → AI Provider"
},
"2": {
"title": "Base URL",
"desc": "Paste your OmniRoute endpoint URL"
},
"3": {
"title": "API Key"
},
"4": {
"title": "Select Model"
}
}
}
},
"mitmHowWorksDesc": "{toolName} sends requests to its provider endpoint. MITM intercepts and redirects them to OmniRoute.",
"mitmStep1": "1. Start MITM to route requests through OmniRoute.",
"mitmStep2Prefix": "2. Add",
"mitmStep2Suffix": "to your hosts file as 127.0.0.1.",
"mitmStep3": "3. Open {toolName} and requests will be proxied.",
"whenToUseLabel": "Коли використовувати",
"openToolDocs": "Відкрийте документацію інструмента",
"toolUseCases": {
"claude": "Використовуйте, коли вам потрібні потужні робочі процеси планування та довгі багатофайлові рефактори з Claude Code.",
"codex": "Використовуйте, коли ваша команда стандартизована на потоках OpenAI Codex CLI та автентифікації на основі профілю.",
"droid": "Використовуйте, коли вам потрібен легкий термінальний агент, зосереджений на швидкому кодуванні та циклах виконання команд.",
"openclaw": "Використовуйте, якщо вам потрібен агент кодування у стилі Open Claw, але маршрутизується через політики OmniRoute.",
"cline": "Використовуйте, коли ви налаштовуєте агенти кодування в редакторах і бажаєте кероване налаштування за допомогою моделей OmniRoute.",
"kilo": "Використовуйте, коли ваш робочий процес залежить від команд Kilo Code та швидких ітеративних редагувань.",
"cursor": "Використовуйте під час кодування в Cursor, і вам потрібні власні моделі, сумісні з OpenAI через OmniRoute.",
"continue": "Використовуйте під час запуску Продовжити в IDE і вам потрібна портативна конфігурація постачальника на основі JSON.",
"opencode": "Використовуйте, якщо ви віддаєте перевагу запуску агента на терміналі та автоматизації за сценарієм через OpenCode.",
"kiro": "Використовуйте під час інтеграції Kiro та централізованого керування маршрутизацією моделі з OmniRoute.",
"antigravity": "Використовуйте, коли трафік Antigravity/Kiro потрібно перехопити через MITM і направити на OmniRoute.",
"copilot": "Використовуйте, коли вам потрібен UX у стилі чату Copilot із застосуванням ключів OmniRoute і правил маршрутизації."
}
},
"combos": {
"title": "Комбо",
"description": "Створюйте комбінації моделей із зваженою маршрутизацією та підтримкою резервного варіанту",
"createCombo": "Створити комбо",
"editCombo": "Редагувати комбінацію",
"deleteCombo": "Видалити комбо",
"noModels": "Немає моделей",
"noModelsYet": "Моделі ще не додано",
"addModel": "Додати модель",
"addModelToCombo": "Додати модель до комбо",
"routingStrategy": "Стратегія маршрутизації",
"maxRetries": "Макс. повторних спроб",
"timeout": "Час очікування (мс)",
"healthcheck": "Healthcheck",
"priority": "Пріоритет",
"fallback": "Запасний варіант",
"roundRobin": "Кругова система",
"random": "Випадковий",
"leastLatency": "Найменша затримка",
"comboName": "Комбінована назва",
"comboNamePlaceholder": "моє комбо",
"deleteConfirm": "Видалити цю комбінацію?",
"noCombosYet": "Комбо ще немає",
"comboCreated": "Комбінацію створено успішно",
"comboUpdated": "Комбо успішно оновлено",
"comboDeleted": "Комбо видалено",
"failedCreate": "Не вдалося створити комбо",
"failedUpdate": "Не вдалося оновити комбінацію",
"errorCreating": "Помилка створення комбо",
"errorUpdating": "Помилка оновлення комбо",
"errorDeleting": "Помилка видалення комбо",
"testFailed": "Помилка тестового запиту",
"failedToggle": "Не вдалося перемкнути комбінацію",
"testResults": "Результати тесту — {name}",
"resolvedBy": "Вирішено:",
"more": "+ ще {count}",
"reqs": "вимоги",
"success": "успіх",
"proxyConfigured": "Проксі налаштовано",
"copyComboName": "Копіювати ім'я комбо",
"enableCombo": "Увімкнути комбо",
"disableCombo": "Вимкнути комбо",
"testCombo": "Тестовий комбо",
"duplicate": "дублікат",
"proxyConfig": "Конфігурація проксі",
"nameRequired": "Необхідно вказати ім'я",
"nameInvalid": "Тільки літери, цифри, -, _, / і . дозволено",
"nameHint": "Букви, цифри, -, _, / і . дозволено",
"priorityDesc": "Послідовний резерв: спочатку пробує модель 1, потім 2 тощо.",
"weightedDesc": "Розподіляє трафік за ваговим відсотком із резервним варіантом",
"roundRobinDesc": "Циркулярний розподіл: кожен запит переходить до наступної моделі по черзі",
"randomDesc": "Рівномірний випадковий вибір, а потім повернення до інших моделей",
"leastUsedDesc": "Вибирає модель із найменшою кількістю запитів, балансуючи навантаження за часом",
"costOptimizedDesc": "Маршрути до найдешевшої моделі на основі ціни",
"strictRandom": "Strict Random",
"strictRandomDesc": "Shuffle deck — uses each model once before reshuffling",
"models": "Моделі",
"autoBalance": "Автобаланс",
"advancedSettings": "Розширені налаштування",
"retryDelay": "Затримка повтору (мс)",
"concurrencyPerModel": "Одночасність / Модель",
"queueTimeout": "Час очікування черги (мс)",
"advancedHint": "Залиште пустим, щоб використовувати глобальні параметри за умовчанням. Вони замінюють налаштування кожного постачальника.",
"moveUp": "Рухатися вгору",
"moveDown": "Рухатися вниз",
"removeModel": "видалити",
"saving": "Збереження...",
"weighted": "Зважений",
"leastUsed": "Найменш використовуваний",
"costOpt": "Cost-Opt",
"strategyGuideTitle": "How to use this strategy",
"strategyGuideWhen": "When to use",
"strategyGuideAvoid": "Avoid when",
"strategyGuideExample": "Example",
"strategyGuide": {
"priority": {
"when": "You have one preferred model and only want fallback on failure.",
"avoid": "You need request distribution across models.",
"example": "Primary coding model with cheaper backup for outages."
},
"weighted": {
"when": "You need controlled traffic split across models.",
"avoid": "You cannot maintain accurate weights over time.",
"example": "80% stable model + 20% canary model rollout."
},
"round-robin": {
"when": "You want predictable and even distribution.",
"avoid": "Models differ too much in latency or cost.",
"example": "Same model on multiple accounts to spread throughput."
},
"random": {
"when": "You want simple distribution with minimal setup.",
"avoid": "You need strict traffic guarantees.",
"example": "Quick prototyping with equivalent models."
},
"least-used": {
"when": "You want adaptive balancing based on live demand.",
"avoid": "Traffic is too low to benefit from usage balancing.",
"example": "Mixed workloads where one model often gets overloaded."
},
"cost-optimized": {
"when": "Cost reduction is your top priority.",
"avoid": "Pricing data is missing or outdated.",
"example": "Background or batch jobs where lower cost is preferred."
}
},
"advancedHelp": {
"maxRetries": "How many retries are attempted before failing a request.",
"retryDelay": "Initial wait between retries. Higher values reduce burst pressure.",
"timeout": "Maximum request duration before aborting.",
"healthcheck": "Skips unhealthy models/providers from routing decisions.",
"concurrencyPerModel": "Max simultaneous requests allowed per model in round-robin.",
"queueTimeout": "How long a request can wait in queue before timing out."
},
"templatesTitle": "Quick templates",
"templatesDescription": "Apply a starting profile, then adjust models and config.",
"templateApply": "Apply template",
"templateHighAvailability": "High availability",
"templateHighAvailabilityDesc": "Priority routing with health checks and safe retries.",
"templateCostSaver": "Cost saver",
"templateCostSaverDesc": "Cost-optimized routing for budget-first workloads.",
"templateBalanced": "Balanced load",
"templateBalancedDesc": "Least-used routing to spread demand over time.",
"usageGuideHide": "Hide",
"usageGuideDontShowAgain": "Don't show again",
"usageGuideShow": "Show guide",
"quickTestTitle": "Combo ready to validate",
"quickTestDescription": "Run a test now to confirm fallback and latency behavior.",
"testNow": "Test now",
"pricingCoverage": "Pricing coverage",
"pricingCoverageHint": "Cost-optimized works best when all combo models have pricing.",
"pricingAvailable": "Pricing available",
"pricingMissing": "No pricing",
"pricingAvailableShort": "priced",
"pricingMissingShort": "no-price",
"warningRoundRobinSingleModel": "Round-robin is most useful with at least 2 models.",
"warningCostOptimizedPartialPricing": "Only {priced} of {total} models have pricing. Routing may be partially cost-aware.",
"warningCostOptimizedNoPricing": "No pricing data found for this combo. Cost-optimized may route unexpectedly.",
"readinessTitle": "Готові економити?",
"readinessDescription": "Перегляньте контрольний список, перш ніж створювати або оновлювати цю комбінацію.",
"readinessCheckName": "Ім'я комбінованого тексту дійсне",
"readinessCheckModels": "Вибрано принаймні одну модель",
"readinessCheckWeights": "Зважений підсумок становить 100%",
"readinessCheckWeightsOptional": "Правило ваги не потрібне",
"readinessCheckPricing": "Ціни доступні",
"readinessCheckPricingOptional": "Правило ціноутворення не вимагається",
"saveBlockedTitle": "Збереження заблоковано, доки не будуть виправлені такі елементи:",
"saveBlockName": "Визначте комбіноване ім’я.",
"saveBlockModels": "Додайте хоча б одну модель.",
"saveBlockWeighted": "Встановити ваги на 100% (поточний: {total}%).",
"saveBlockPricing": "Додайте ціну принаймні на одну модель або виберіть іншу стратегію.",
"recommendationsLabel": "Recommended setup",
"applyRecommendations": "Apply recommendations",
"recommendationsUpdated": "Recommendations updated for {strategy}.",
"recommendationsApplied": "Recommendations applied to this combo.",
"strategyRecommendations": {
"priority": {
"title": "Fail-safe baseline",
"description": "Use one primary model and keep fallback chain short and reliable.",
"tip1": "Put your most reliable model first.",
"tip2": "Keep 1-2 backup models with similar quality.",
"tip3": "Use safe retries to absorb transient provider failures."
},
"weighted": {
"title": "Controlled traffic split",
"description": "Great for canary rollouts and gradual migration between models.",
"tip1": "Start with conservative split like 90/10.",
"tip2": "Keep the total at 100% and auto-balance after changes.",
"tip3": "Monitor success and latency before increasing canary weight."
},
"round-robin": {
"title": "Predictable load sharing",
"description": "Best when models are equivalent and you need smooth distribution.",
"tip1": "Use at least 2 models.",
"tip2": "Set concurrency limits to avoid burst overload.",
"tip3": "Use queue timeout to fail fast under saturation."
},
"random": {
"title": "Quick spread with low setup",
"description": "Use when you need simple distribution without strict guarantees.",
"tip1": "Use models with similar latency profiles.",
"tip2": "Keep retries enabled to absorb random misses.",
"tip3": "Prefer this for experimentation, not strict SLAs."
},
"least-used": {
"title": "Adaptive balancing",
"description": "Routes to less-used models to reduce hotspots over time.",
"tip1": "Works better under continuous traffic.",
"tip2": "Combine with health checks for safer balancing.",
"tip3": "Track per-model usage to validate distribution gains."
},
"cost-optimized": {
"title": "Budget-first routing",
"description": "Routes to lower-cost models when pricing metadata is available.",
"tip1": "Ensure pricing coverage for all selected models.",
"tip2": "Keep a quality fallback for hard prompts.",
"tip3": "Use for batch/background jobs where cost is the main KPI."
}
},
"templateFreeStack": "Free Stack ($0)",
"templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding."
},
"costs": {
"title": "Витрати",
"budget": "Бюджет",
"totalCost": "Загальна вартість",
"breakdown": "Розподіл витрат",
"noData": "Немає даних про вартість",
"byModel": "За моделлю",
"byProvider": "Від постачальника"
},
"endpoint": {
"title": "Кінцева точка API",
"available": "Доступні кінцеві точки",
"cloudProxy": "Хмарний проксі",
"disableConfirm": "Ви впевнені, що бажаєте вимкнути хмарний проксі?",
"baseUrl": "Базовий URL",
"apiKeyLabel": "Ключ API",
"registeredKeys": "Зареєстровані ключі",
"chatCompletions": "Завершення чату",
"responses": "Відповіді",
"listModels": "Список моделей",
"usingCloudProxy": "Використання Cloud Proxy",
"usingLocalServer": "Використання локального сервера",
"machineId": "Ідентифікатор машини: {id}...",
"disableCloud": "Вимкнути хмару",
"enableCloud": "Увімкнути хмару",
"modelsAcrossEndpoints": "{models} моделей через {endpoints} кінцевих точок",
"chatDesc": "Потоковий і непотоковий чат з усіма провайдерами",
"embeddings": "Вбудовування",
"embeddingsDesc": "Вбудовування тексту для конвеєрів пошуку та RAG",
"imageGeneration": "Генерація зображень",
"imageDesc": "Створення зображень із текстових підказок",
"rerank": "Змінити ранг",
"rerankDesc": "Реранжувати документи за відповідністю запиту",
"audioTranscription": "Транскрипція аудіо",
"audioTranscriptionDesc": "Транскрибувати аудіофайли в текст (Whisper)",
"textToSpeech": "Перетворення тексту в мовлення",
"textToSpeechDesc": "Перетворення тексту на природне мовлення",
"moderations": "Модерації",
"moderationsDesc": "Модерація контенту та класифікація безпеки",
"responsesDesc": "OpenAI Responses API for Codex and advanced agentic workflows",
"listModelsDesc": "List all available models across all connected providers",
"settingsApiDesc": "Read and modify OmniRoute configuration via API",
"settingsApi": "Settings API",
"categoryCore": "Основні API",
"categoryMedia": "Медіа та мультимодальність",
"categoryUtility": "Утиліти та управління",
"enableCloudTitle": "Увімкнути Cloud Proxy",
"whatYouGet": "Що ви отримаєте",
"cloudBenefitAccess": "Отримайте доступ до свого API з будь-якої точки світу",
"cloudBenefitShare": "Легко діліться кінцевою точкою зі своєю командою",
"cloudBenefitPorts": "Не потрібно відкривати порти чи налаштовувати брандмауер",
"cloudBenefitEdge": "Швидка глобальна крайова мережа",
"cloudSessionNote": "Хмара зберігатиме ваш сеанс авторизації протягом 1 дня. Якщо не використовувати, воно буде автоматично видалено.",
"cloudUnstableNote": "Хмара зараз нестабільна з Claude Code OAuth у деяких випадках.",
"cloudConnected": "Cloud Proxy підключено!",
"connectingToCloud": "Підключення до хмари...",
"verifyingConnection": "Перевірка підключення...",
"connecting": "Підключення...",
"verifying": "Перевірка...",
"connected": "Підключено!",
"disableCloudTitle": "Вимкнути хмарний проксі",
"disableWarning": "Усі сеанси авторизації буде видалено з хмари.",
"syncingData": "Синхронізація останніх даних...",
"disablingCloud": "Вимкнення хмари...",
"syncing": "Синхронізація...",
"disabling": "Вимкнення...",
"cloudConnectedVerified": "Cloud Proxy підключено та перевірено!",
"connectedVerificationPending": "Підключено — очікується перевірка",
"connectedVerificationPendingWithError": "Підключено — очікується підтвердження: {error}",
"cloudDisabledSuccess": "Хмару успішно вимкнено",
"syncedSuccess": "Успішно синхронізовано",
"failedDisable": "Не вдалося вимкнути хмару",
"failedEnable": "Не вдалося ввімкнути хмару",
"cloudRequestTimeout": "Час очікування хмарного запиту",
"cloudRequestFailed": "Помилка запиту на хмару",
"cloudWorkerUnreachable": "Не вдалося підключитися до хмарного працівника. Переконайтеся, що хмарна служба запущена (npm run dev в /cloud).",
"connectionFailed": "Помилка підключення",
"syncFailed": "Не вдалося синхронізувати хмарні дані",
"providerModelsTitle": "{provider} — Моделі",
"noModelsForProvider": "Для цього постачальника немає доступних моделей.",
"chat": "Чат",
"embedding": "Вбудовування",
"image": "Зображення",
"custom": "звичай",
"modelsCount": "{count, plural, one {# model} other {# models}}",
"sectionTitle": "Integration Surface",
"sectionDescription": "OpenAI-compatible APIs and operational protocol endpoints",
"tabApis": "OpenAI-compatible APIs",
"tabProtocols": "Protocols",
"tabsAria": "Endpoint sections",
"protocolsTitle": "Protocols",
"protocolsDescription": "MCP and A2A are first-class endpoints with dedicated observability and controls.",
"mcpCardTitle": "MCP Server",
"mcpCardDescription": "Model Context Protocol over stdio",
"a2aCardTitle": "A2A Server",
"a2aCardDescription": "Agent2Agent JSON-RPC endpoint",
"protocolToolsLabel": "Tools",
"protocolTasksLabel": "Tasks",
"protocolActiveStreamsLabel": "Active streams",
"protocolLastActivity": "Last activity",
"quickStart": "Quick Start",
"openMcpDashboard": "Open MCP management",
"openA2aDashboard": "Open A2A management",
"mcpQuickStartTitle": "MCP Quick Start",
"mcpQuickStartStep1": "Run the MCP server via `omniroute --mcp`.",
"mcpQuickStartStep2": "Configure your MCP client to connect over stdio transport.",
"mcpQuickStartStep3": "Invoke tools such as `omniroute_get_health` and `omniroute_list_combos`.",
"a2aQuickStartTitle": "A2A Quick Start",
"a2aQuickStartStep1": "Discover the agent card at `/.well-known/agent.json`.",
"a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
"a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
"completionsLegacy": "Completions (Legacy)",
"completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
"categorySearch": "Search & Discovery",
"webSearch": "Web Search",
"webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
"searchProvider": "Search Provider",
"searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
},
"mcpDashboard": {
"loading": "Loading MCP dashboard...",
"activate": "activate",
"deactivate": "deactivate",
"confirmSwitchCombo": "Confirm {action} combo \"{combo}\"?",
"switchComboFailed": "Failed to switch combo state.",
"switchComboSuccess": "Combo \"{combo}\" updated.",
"confirmApplyProfile": "Apply resilience profile \"{profile}\"?",
"applyProfileFailed": "Failed to apply resilience profile.",
"applyProfileSuccess": "Profile \"{profile}\" applied.",
"confirmResetBreakers": "Reset all circuit breakers?",
"resetBreakersFailed": "Failed to reset circuit breakers.",
"resetBreakersSuccess": "Скидання автоматичних вимикачів.",
"processStatus": "Статус процесу",
"online": "Онлайн",
"offline": "Офлайн",
"pid": "PID",
"sessionUptime": "Час роботи сесії",
"lastHeartbeat": "Останній удар серця",
"activity24h": "Активність (24 години)",
"totalCalls": "Всього дзвінків",
"successRate": "Коефіцієнт успішності",
"avgLatency": "Середня затримка",
"topTools": "Top tools",
"noToolCalls24h": "No tool calls in the last 24 hours.",
"runtimeDetails": "Runtime details",
"transport": "Transport",
"scopesEnforced": "Scopes enforced",
"yes": "yes",
"no": "no",
"lastCall": "Last call",
"heartbeatPath": "Heartbeat path",
"operationalControls": "Operational controls",
"switchCombo": "Switch combo",
"inactive": "inactive",
"active": "active",
"activateCombo": "Activate combo",
"deactivateCombo": "Deactivate combo",
"applyResilienceProfile": "Apply resilience profile",
"profileAggressive": "aggressive",
"profileBalanced": "balanced",
"profileConservative": "conservative",
"applyProfile": "Apply profile",
"resetCircuitBreakers": "Reset circuit breakers",
"resetCircuitBreakersHelp": "Clears current breaker state and failure counters for providers.",
"resetAllBreakers": "Reset all breakers",
"toolsAndScopes": "Tools and scopes",
"tableTool": "Tool",
"tableScopes": "Scopes",
"tablePhase": "Phase",
"tableAudit": "Audit",
"auditLog": "Audit log",
"auditSummary": "Calls: {total} | page {page} of {totalPages}",
"allTools": "All tools",
"allResults": "All results",
"success": "Success",
"failure": "Failure",
"apiKeyIdPlaceholder": "apiKeyId",
"loadingAuditEntries": "Loading audit entries...",
"noAuditEntriesForFilters": "No audit entries found for current filters.",
"tableTimestamp": "Timestamp",
"tableDuration": "Duration",
"tableResult": "Result",
"tableApiKey": "API key",
"failed": "failed",
"previous": "Previous",
"next": "Next"
},
"a2aDashboard": {
"loading": "Loading A2A dashboard...",
"confirmCancelTask": "Cancel task {taskId}?",
"cancelTaskFailed": "Failed to cancel task.",
"cancelTaskSuccess": "Task {taskId} cancelled.",
"smokeSendFailed": "message/send smoke test failed.",
"smokeSendSuccessWithTask": "message/send ok (task {taskId}).",
"smokeSendSuccess": "message/send ok.",
"smokeStreamFailed": "message/stream smoke test failed.",
"smokeStreamSuccessWithTask": "message/stream ok (task {taskId}{stateSuffix}).",
"smokeStreamNoTaskId": "message/stream finished without task id.",
"health": "Health",
"ok": "ok",
"totalTasks": "Total tasks",
"activeStreams": "Active streams",
"lastTask": "Last task",
"taskStateOverview": "Task state overview",
"state": {
"submitted": "submitted",
"working": "working",
"completed": "completed",
"failed": "failed",
"cancelled": "cancelled"
},
"agentCard": "Agent card",
"version": "Version",
"url": "URL",
"capabilities": "Capabilities",
"agentCardNotAvailable": "Agent card not available.",
"quickValidation": "Quick validation",
"quickValidationDescription": "Executes smoke calls through the live `/a2a` endpoint.",
"runMessageSend": "Run message/send",
"runMessageStream": "Run message/stream",
"taskManagement": "Task management",
"taskSummary": "{total} tasks | page {page} of {totalPages}",
"allStates": "all",
"allSkills": "all skills",
"loadingTasks": "Loading tasks...",
"noTasksForFilters": "No tasks found for current filters.",
"tableTask": "Task",
"tableSkill": "Skill",
"tableState": "State",
"tableUpdated": "Updated",
"tableActions": "Actions",
"view": "View",
"cancel": "Cancel",
"previous": "Previous",
"next": "Next",
"taskDetail": "Task detail",
"close": "Close",
"metadata": "Metadata",
"events": "Events",
"artifacts": "Artifacts"
},
"health": {
"title": "Здоров'я системи",
"description": "Моніторинг вашого екземпляра OmniRoute у реальному часі",
"healthy": "Здоровий",
"degraded": "Деградували",
"down": "вниз",
"uptime": "Час роботи",
"memory": "Пам'ять",
"memoryRss": "Пам'ять (RSS)",
"heap": "Купа",
"cpu": "ЦП",
"database": "База даних",
"version": "Версія",
"lastCheck": "Остання перевірка",
"providerHealth": "Здоров'я постачальника",
"systemMetrics": "Системні показники",
"tokenHealth": "Токен здоров'я",
"refreshAll": "Оновити все",
"checkNow": "Перевір зараз",
"loadingHealth": "Завантаження даних про стан здоров'я...",
"failedToLoad": "Не вдалося завантажити дані про здоров’я: {error}",
"retry": "Повторіть спробу",
"allOperational": "Всі системи в робочому стані",
"issuesDetected": "Виявлено системні проблеми",
"updatedAt": "Оновлено {time}",
"latency": "Затримка",
"latencyP50": "стор.50",
"latencyP95": "стор.95",
"latencyP99": "стор.99",
"millisecondsShort": "{value}мс",
"notAvailable": "—",
"totalRequests": "Всього запитів",
"noDataYet": "Даних ще немає",
"promptCache": "Кеш підказок",
"entries": "Записи",
"hitRate": "Рейтинг попадань",
"hitsMisses": "Попадання / промахи",
"signatureCache": "Кеш підписів",
"signatureDefaults": "За замовчуванням",
"signatureTool": "Інструмент",
"signatureFamily": "Сім'я",
"signatureSession": "Сесія",
"recovering": "Відновлюється",
"noCBData": "Немає даних про автоматичний вимикач. Спочатку зробіть кілька запитів.",
"providerHealthStatusAria": "Стан здоров'я постачальника",
"issuesLabel": "Виявлені проблеми",
"operational": "Оперативний",
"providers": "Провайдери",
"healthyCount": "{count} здоровий",
"nodeVersion": "Вузол {version}",
"failures": "Помилка {count}",
"failuresPlural": "{count} помилки",
"lastFailure": "Останній",
"rateLimitStatus": "Статус обмеження швидкості",
"activeLimiters": "{count} активний обмежувач",
"activeLimitersPlural": "{count} активні обмежувачі",
"queued": "У черзі",
"queuedCount": "{count} у черзі",
"running": "біг",
"runningCount": "{count} працює",
"ok": "добре",
"activeLockouts": "Активні блокування",
"resetConfirm": "Перевести всі автоматичні вимикачі в справний стан? Це очистить усі підрахунки помилок і відновить усі постачальники до робочого стану.",
"resetAllTitle": "Скиньте всі автоматичні вимикачі в справний стан",
"resetting": "Скидання...",
"resetAll": "Скинути все",
"until": "До {time}",
"activeProviders": "{count} active",
"monitoredProviders": "{count} monitored",
"configuredProvidersLabel": "Налаштовано на інформаційній панелі",
"configuredProvidersHint": "Постачальники з обліковими даними, збереженими в /dashboard/providers, незалежно від стану виконання.",
"activeProvidersHint": "Налаштовані постачальники наразі ввімкнено для запитів маршрутизації.",
"monitoredProvidersHint": "Постачальники наразі відстежуються моніторами справності автоматичних вимикачів."
},
"limits": {
"title": "Ліміти та квоти",
"rateLimit": "Обмеження швидкості",
"remaining": "Залишилося",
"requestsPerMinute": "Запитів/хв",
"tokensPerMinute": "Токенів/хв",
"dailyLimit": "Денний ліміт"
},
"logs": {
"title": "Журнали",
"requestLogs": "Журнали запитів",
"proxyLogs": "Журнали проксі",
"auditLog": "Журнал аудиту",
"console": "Консоль",
"auditLogDesc": "Адміністративні дії та заходи безпеки",
"loading": "Завантаження...",
"refresh": "Оновити",
"filterByAction": "Фільтрувати за дією...",
"filterByActor": "Фільтрувати за актором...",
"filterEntriesAria": "Фільтрувати записи журналу аудиту",
"filterByActionTypeAria": "Фільтрувати за типом дії",
"filterByActorAria": "Фільтрувати за актором",
"refreshAuditLogAria": "Оновити журнал аудиту",
"tableAria": "Записи журналу аудиту",
"failedFetchAuditLog": "Не вдалося отримати журнал аудиту",
"showing": "Показано {count} записів (зміщення {offset})",
"search": "Пошук",
"timestamp": "Мітка часу",
"action": "Дія",
"actor": "Актор",
"target": "Цільова",
"details": "Подробиці",
"ipAddress": "IP-адреса",
"notAvailable": "—",
"noEntries": "Записів журналу аудиту не знайдено",
"previous": "Попередній",
"next": "Далі"
},
"onboarding": {
"welcome": "Ласкаво просимо",
"security": "Безпека",
"test": "Тест",
"ready": "Готовий!",
"setPassword": "Встановити пароль",
"addProvider": "Додайте свого першого постачальника",
"getStarted": "Почніть роботу",
"skip": "Пропустити",
"skipWizard": "Повністю пропустити майстер",
"skipPassword": "Пропустити встановлення пароля",
"skipAndContinue": "Пропустити та продовжити",
"passwordLabel": "Пароль",
"confirmPassword": "Підтвердьте пароль",
"enterPassword": "Введіть пароль",
"confirmPasswordPlaceholder": "Підтвердьте пароль",
"passwordsMismatch": "Паролі не збігаються",
"setupComplete": "Налаштування завершено!",
"goToDashboard": "Перейдіть на інформаційну панель →",
"welcomeDesc": "OmniRoute — це ваш локальний проксі-сервер AI API. Він направляє запити до кількох постачальників штучного інтелекту за допомогою балансування навантаження, відновлення після відмови та відстеження використання.",
"multiProvider": "Багатопровайдер",
"usageTracking": "Відстеження використання",
"apiKeyMgmt": "API Key Mgmt",
"securityDesc": "Встановіть пароль, щоб захистити свою інформаційну панель, або пропустіть наразі.",
"providerDesc": "Підключіть свого першого постачальника AI. Ви можете додати більше пізніше.",
"apiKeyRequired": "Ключ API (обов'язково)",
"customUrlOptional": "Спеціальна URL-адреса (необов'язково)",
"testDesc": "Давайте перевіримо, чи працює підключення до вашого провайдера.",
"runTest": "Запустіть перевірку підключення",
"testingConnection": "Перевірка підключення...",
"connectionSuccessful": "Підключення успішне! Ваш провайдер готовий.",
"noProviderFound": "Постачальника не знайдено. Ви можете додати його з інформаційної панелі пізніше.",
"testFailed": "Тестування не вдалося, але ви можете налаштувати це пізніше.",
"couldNotTest": "Зараз не вдалося перевірити. Тестувати можна з інформаційної панелі.",
"doneDesc": "Усе готово! Ваш екземпляр OmniRoute налаштований і готовий проксі-сервер запитів ШІ.",
"yourEndpoint": "Ваша кінцева точка:",
"continue": "Продовжити",
"retry": "Повторіть спробу",
"failedSetPassword": "Не вдалося встановити пароль. Спробуйте знову.",
"failedAddProvider": "Не вдалося додати постачальника. Спробуйте знову.",
"connectionError": "Помилка підключення. Спробуйте ще раз.",
"provider": "Провайдер"
},
"providers": {
"title": "Провайдери",
"addProvider": "Додати постачальника",
"editProvider": "Редагувати постачальника",
"deleteProvider": "Видалити постачальника",
"noProviders": "Постачальники не налаштовані",
"modelAvailability": "Наявність моделі",
"accounts": "Облікові записи",
"newAccount": "Новий акаунт",
"deleteConfirm": "Ви впевнені, що хочете видалити цього постачальника?",
"testing": "Тестування...",
"testConnection": "Тестове підключення",
"testSuccess": "Підключення успішне",
"testFailed": "Помилка підключення",
"available": "в наявності",
"cooldown": "Кулдаун",
"unavailable": "Недоступний",
"unknown": "Невідомий",
"oauthLabel": "OAuth",
"compatibleLabel": "сумісний",
"chat": "Чат",
"responses": "Відповіді",
"messages": "Повідомлення",
"oauthProviders": "Постачальники OAuth",
"freeProviders": "Безкоштовні постачальники",
"apiKeyProviders": "Постачальники ключів API",
"compatibleProviders": "Сумісні постачальники ключів API",
"testAll": "Перевірити все",
"testAllOAuth": "Перевірте всі підключення OAuth",
"testAllFree": "Перевірте всі безкоштовні підключення",
"testAllApiKey": "Перевірте всі підключення ключів API",
"testAllCompatible": "Перевірте всі сумісні підключення",
"connected": "{count} Підключено",
"errorCount": "Помилка {count} ({code})",
"errorCountNoCode": "{count} Помилка",
"noConnections": "Жодних зв'язків",
"disabled": "Вимкнено",
"enableProvider": "Увімкнути провайдера",
"disableProvider": "Вимкнути провайдера",
"testResults": "Результати тестування",
"noCompatibleYet": "Сумісних провайдерів ще не додано",
"compatibleHint": "Використовуйте кнопки вище, щоб додати кінцеві точки, сумісні з OpenAI або Anthropic",
"addOpenAICompatible": "Додайте OpenAI Compatible",
"addAnthropicCompatible": "Додати Anthropic Compatible",
"addNewProvider": "Додати нового постачальника",
"backToProviders": "Назад до постачальників",
"configureNewProvider": "Налаштуйте нового постачальника AI для використання з вашими програмами.",
"providerLabel": "Провайдер",
"selectProvider": "Виберіть провайдера",
"selectedProvider": "Вибраний провайдер",
"authMethod": "Метод автентифікації",
"apiKeyLabel": "Ключ API",
"apiKeyRequired": "Потрібен ключ API",
"selectProviderRequired": "Будь ласка, виберіть постачальника",
"enterApiKey": "Введіть свій ключ API",
"apiKeySecure": "Ваш ключ API буде зашифровано та безпечно зберігатиметься.",
"oauth2Connect": "Підключіться за допомогою OAuth2",
"oauth2Label": "OAuth2",
"oauth2Desc": "Підключіть свій обліковий запис за допомогою автентифікації OAuth2.",
"displayName": "Відображуване ім'я",
"displayNamePlaceholder": "наприклад, Production API, Dev Environment",
"displayNameHint": "Додатково. Зрозуміле ім’я для ідентифікації цієї конфігурації.",
"active": "Активний",
"activeDescription": "Увімкніть цей провайдер для використання у ваших програмах",
"cancel": "Скасувати",
"createProvider": "Створити постачальника",
"failedCreate": "Не вдалося створити постачальника",
"errorOccurred": "Сталася помилка. Спробуйте ще раз.",
"modelStatus": "Статус моделі",
"allModelsOperational": "Всі моделі робочі",
"modelsWithIssues": "{count} моделі з проблемами",
"allModelsNormal": "Усі моделі реагують нормально.",
"cooldownCleared": "Зарядку для {model} очищено",
"failedClearCooldown": "Не вдалося очистити час відновлення",
"loadingAvailability": "Завантаження доступності моделі...",
"clearCooldown": "ясно",
"clearing": "Очищення...",
"until": "До {time}",
"providerTestFailed": "Тест постачальника не вдався",
"modeTest": "Тест {mode}",
"passedCount": "{count} пройдено",
"failedCount": "{count} не вдалося",
"testedCount": "{count} перевірено",
"millisecondsAbbr": "{value}мс",
"okShort": "добре",
"errorShort": "ПОМИЛКА",
"noActiveConnectionsInGroup": "Для цієї групи не знайдено активних з’єднань.",
"allTestsPassed": "Усі тести {total} пройдено",
"testSummary": "{passed}/{total} пройдено, {failed} не виконано",
"nameLabel": "Ім'я",
"prefixLabel": "Префікс",
"baseUrlLabel": "Базовий URL",
"apiTypeLabel": "Тип API",
"prefixHint": "Обов'язковий. Унікальний префікс для назв моделей.",
"nameHint": "Обов'язковий. Зручна мітка для цього вузла.",
"baseUrlHint": "Обов'язковий.  Основна URL-адреса API постачальника.",
"anthropicPrefixPlaceholder": "ac-prod",
"openaiPrefixPlaceholder": "oc-prod",
"anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
"openaiBaseUrlPlaceholder": "https://api.openai.com/v1",
"validateConnection": "Перевірте підключення",
"validating": "Перевірка...",
"connectionValid": "Підключення дійсне!",
"connectionFailed": "Помилка підключення. Перевірте URL-адресу та ключ.",
"testKeyLabel": "Тестовий ключ API",
"testKeyPlaceholder": "sk-... (лише для перевірки)",
"providerNotFound": "Постачальник не знайдено",
"deleteConnectionConfirm": "Видалити це підключення?",
"failedSetAlias": "Не вдалося встановити псевдонім",
"failedSaveConnection": "Не вдалося зберегти з’єднання",
"failedSaveConnectionRetry": "Не вдалося зберегти з’єднання. Спробуйте ще раз.",
"failedRetestConnection": "Не вдалося повторно перевірити з’єднання",
"deleteCompatibleNodeConfirm": "Видалити цей {type} сумісний вузол?",
"anthropicCompatibleDetails": "Antropic Compatible Деталі",
"openaiCompatibleDetails": "Відомості про сумісність з OpenAI",
"messagesApi": "API повідомлень",
"responsesApi": "API відповідей",
"chatCompletions": "Завершення чату",
"importingModels": "Імпорт...",
"importFromModels": "Імпортувати з /models",
"addConnectionToImport": "Додайте підключення, щоб увімкнути імпорт.",
"noModelsConfigured": "Немає налаштованих моделей",
"connectionCount": "{count} підключення(-я)",
"fetchingModels": "Отримання доступних моделей...",
"failedFetchModels": "Не вдалося отримати моделі",
"noModelsFound": "Моделі не знайдено",
"importFailed": "Помилка імпорту",
"noNewModelsAdded": "Нові моделі не додано.",
"adding": "Додавання...",
"importingModelsTitle": "Імпорт моделей",
"copyModel": "Копія моделі",
"removeModel": "Зняти модель",
"rateLimitProtected": "Захищений",
"rateLimitUnprotected": "Незахищений",
"enableRateLimitProtection": "Натисніть, щоб увімкнути захист обмеження швидкості",
"disableRateLimitProtection": "Натисніть, щоб вимкнути захист обмеження швидкості",
"productionKey": "Ключ виробництва",
"enterNewApiKey": "Введіть новий ключ API",
"optional": "Додатково",
"anthropicCompatibleName": "Антропна сумісність",
"openaiCompatibleName": "Сумісність з OpenAI",
"failedImportModels": "Не вдалося імпортувати моделі",
"noModelsReturnedFromEndpoint": "З кінцевої точки /models не повернуто моделей.",
"importingModelsProgress": "Імпорт {current} з {total} моделей...",
"foundModelsStartingImport": "Знайдено {count} моделей. Початок імпорту...",
"importingModelById": "Імпорт {modelId}...",
"importSuccessCount": "Успішно імпортовано {count, plural, one {# model} other {# models}}!",
"noNewModelsAddedExisting": "Нові моделі не додано (усі вже є).",
"importDoneCount": "✓ Готово! {count, plural, one {# model imported.} other {# models imported.}}",
"unexpectedErrorOccurred": "Сталася неочікувана помилка",
"connectionCountLabel": "{count, plural, one {# connection} other {# connections}}",
"messagesPath": "повідомлення",
"responsesPath": "відповіді",
"chatCompletionsPath": "чат/завершення",
"add": "додати",
"edit": "Редагувати",
"delete": "Видалити",
"anthropic": "Антропний",
"openai": "OpenAI",
"singleConnectionPerCompatible": "Дозволяється лише одне з’єднання для сумісного вузла. Додайте інший вузол, якщо вам потрібно більше з’єднань.",
"connections": "Зв'язки",
"providerProxyTitleConfigured": "Проксі-сервер постачальника: {host}",
"configured": "налаштовано",
"providerProxyConfigureHint": "Налаштувати проксі для всіх підключень цього провайдера",
"providerProxy": "Проксі-сервер постачальника",
"noConnectionsYet": "Підключень ще немає",
"addFirstConnectionHint": "Щоб почати, додайте своє перше підключення",
"addConnection": "Додати підключення",
"availableModels": "Доступні моделі",
"pageAutoRefresh": "Сторінка оновиться автоматично...",
"statusDisabled": "вимкнено",
"statusConnected": "підключений",
"statusRuntimeIssue": "проблема виконання",
"statusAuthFailed": "авторизація не вдалася",
"statusRateLimited": "швидкість обмежена",
"statusNetworkIssue": "проблема мережі",
"statusTestUnsupported": "тест не підтримується",
"statusUnavailable": "недоступний",
"statusFailed": "не вдалося",
"statusError": "помилка",
"oauthAccount": "Обліковий запис OAuth",
"errorTypeRuntime": "Локальний час виконання",
"errorTypeUpstreamAuth": "Вихідна авторизація",
"errorTypeMissingCredential": "Відсутні облікові дані",
"errorTypeRefreshFailed": "Не вдалося оновити",
"errorTypeTokenExpired": "Термін дії маркера минув",
"errorTypeRateLimited": "Тариф обмежений",
"errorTypeUpstreamUnavailable": "Вгору недоступний",
"errorTypeNetworkError": "Помилка мережі",
"errorTypeTestUnsupported": "Тест не підтримується",
"errorTypeUpstreamError": "Вихідна помилка",
"proxySourceGlobal": "Глобальний",
"proxySourceProvider": "Провайдер",
"proxySourceKey": "ключ",
"proxyConfiguredBySource": "Проксі ({source}): {host}",
"autoPriority": "Автоматично: {priority}",
"proxy": "Проксі",
"retestAuthentication": "Перевірити автентифікацію",
"retest": "Перетестувати",
"disableConnection": "Відключити підключення",
"enableConnection": "Увімкнути підключення",
"reauthenticateConnection": "Повторно автентифікуйте це підключення",
"proxyConfig": "Конфігурація проксі",
"aliasExistsAlert": "Псевдонім \"{alias}\" вже існує. Використовуйте іншу модель або відредагуйте існуючий псевдонім.",
"openRouterAnyModelHint": "OpenRouter підтримує будь-яку модель. Додайте моделі та створіть псевдоніми для швидкого доступу.",
"modelIdFromOpenRouter": "ID моделі (з OpenRouter)",
"openRouterModelPlaceholder": "антропний/claude-3-opus",
"customModels": "Спеціальні моделі",
"customModelsHint": "Додайте ідентифікатори моделей, яких немає в списку за замовчуванням. Вони будуть доступні для маршрутизації.",
"modelId": "ID моделі",
"customModelPlaceholder": "напр. gpt-4.5-турбо",
"loading": "Завантаження...",
"removeCustomModel": "Видалити спеціальну модель",
"noCustomModels": "Спеціальні моделі ще не додано.",
"allSuggestedAliasesExist": "Усі запропоновані псевдоніми вже існують. Виберіть іншу модель або видаліть конфліктні псевдоніми.",
"failedSaveCustomModel": "Не вдалося зберегти спеціальну модель",
"modelAddedSuccess": "Модель {modelId} успішно додано",
"failedAddModelTryAgain": "Не вдалося додати модель. Спробуйте ще раз.",
"failedSaveImportedModel": "Не вдалося зберегти імпортовану модель до спеціальної бази даних",
"failedImportModelsTryAgain": "Не вдалося імпортувати моделі. Спробуйте ще раз.",
"failedRemoveModelFromDatabase": "Не вдалося видалити модель із бази даних",
"modelRemovedSuccess": "Модель успішно видалено",
"failedDeleteModelTryAgain": "Не вдалося видалити модель. Спробуйте ще раз.",
"compatibleModelsDescription": "Додайте {type}-сумісні моделі вручну або імпортуйте їх із кінцевої точки /models.",
"anthropicCompatibleModelPlaceholder": "claude-3-opus-20240229",
"openaiCompatibleModelPlaceholder": "gpt-4o",
"apiKeyValidationFailed": "Помилка перевірки ключа API. Перевірте свій ключ і повторіть спробу.",
"addProviderApiKeyTitle": "Додайте ключ API {provider}",
"checking": "Перевірка...",
"check": "Перевірте",
"valid": "Дійсний",
"invalid": "Недійсний",
"creating": "Створення...",
"validationChecksAnthropicCompatible": "Перевірка перевіряє {provider} шляхом підтвердження ключа API.",
"validationChecksOpenAiCompatible": "Перевірка перевірки {provider} через /models на вашій базовій URL-адресі.",
"priorityLabel": "Пріоритет",
"saving": "Збереження...",
"save": "зберегти",
"editConnection": "Редагувати підключення",
"accountName": "Ім'я облікового запису",
"email": "Електронна пошта",
"healthCheckMinutes": "Перевірка стану (хв.)",
"healthCheckHint": "Проактивний інтервал оновлення маркера. 0 = вимкнено.",
"groupLabel": "Environment",
"groupPlaceholder": "e.g. eKaizen, Personal",
"failedTestConnection": "Не вдалося перевірити з’єднання",
"failed": "Не вдалося",
"leaveBlankKeepCurrentApiKey": "Залиште поле порожнім, щоб зберегти поточний ключ API.",
"editCompatibleTitle": "Редагувати {type} Сумісний",
"compatibleBaseUrlHint": "Root URL of your {type}-compatible API. Use Advanced Settings for custom endpoint paths.",
"apiKeyForCheck": "Ключ API (для перевірки)",
"compatibleProdPlaceholder": "{type} Сумісність (Prod)",
"providerTestTimeout": "Provider test timed out — too many connections to test at once",
"advancedSettings": "Advanced Settings",
"chatPathLabel": "Chat Endpoint Path",
"chatPathPlaceholder": "/chat/completions",
"chatPathHint": "Custom chat path for providers with non-standard APIs (e.g. /v4/chat/completions)",
"modelsPathLabel": "Models Endpoint Path",
"modelsPathPlaceholder": "/models",
"modelsPathHint": "Custom models path for validation (e.g. /v4/models)",
"builtInModels": "Built-in models",
"builtInModelsHint": "Registry models for this provider. Use the pencil to set compatibility options.",
"normalizeToolCallIdLabel": "Normalize tool call IDs to 9 characters (e.g. Mistral)",
"preserveDeveloperRoleLabel": "Keep OpenAI Responses developer role (do not map to system)",
"compatAdjustmentsTitle": "Compatibility",
"compatButtonLabel": "Compatibility",
"compatToolIdShort": "Tool ID 9",
"compatDeveloperShort": "Developer role",
"compatDoNotPreserveDeveloper": "Do not preserve developer role",
"compatBadgeNoPreserve": "No preserve",
"compatProtocolLabel": "Client request protocol",
"compatProtocolHint": "These options apply when OmniRoute detects this request shape (OpenAI Chat, Responses API, or Anthropic Messages).",
"compatProtocolOpenAI": "OpenAI Chat Completions",
"compatProtocolOpenAIResponses": "OpenAI Responses API",
"compatProtocolClaude": "Anthropic Messages",
"tokenRefreshed": "Token refreshed successfully",
"tokenRefreshFailed": "Token refresh failed",
"compatBadgeUpstreamHeaders": "Headers",
"compatUpstreamAddRow": "Add header",
"compatUpstreamHeaderName": "Header name",
"compatUpstreamHeaderValue": "Value",
"compatUpstreamHeadersHint": "High-privilege setting — same trust level as editing provider API credentials; only trusted admins should use it. Merged after OmniRoute adds auth from the provider API key. If a custom header uses the same name as an existing one (e.g. Authorization), your value fully replaces the auto-generated header (including the Bearer token) — the upstream only sees what you typed, not the key from settings. Misconfiguration can cause 401 or broken upstream auth. One row per header (e.g. extra Authentication for some gateways). Hover or focus the value to preview. Saves on blur, outside click, or closing this panel.",
"compatUpstreamHeadersLabel": "Extra upstream headers",
"compatUpstreamRemoveRow": "Remove row"
},
"settings": {
"title": "Налаштування",
"general": "Загальний",
"security": "Безпека",
"appearance": "Зовнішній вигляд",
"routing": "Маршрутизація",
"cache": "Кеш",
"resilience": "Стійкість",
"systemPrompt": "Системна підказка",
"thinkingBudget": "Мислення про бюджет",
"proxy": "Проксі",
"pricing": "Ціноутворення",
"storage": "Зберігання",
"policies": "політики",
"ipFilter": "IP-фільтр",
"comboDefaults": "Комбіновані параметри за замовчуванням",
"fallbackChains": "Резервні ланцюги",
"changePassword": "Змінити пароль",
"enablePassword": "Увімкнути пароль",
"darkMode": "Темний режим",
"lightMode": "Світловий режим",
"systemTheme": "Тема системи",
"enableCache": "Увімкнути кеш",
"cacheTTL": "Кеш TTL",
"maxCacheSize": "Максимальний розмір кешу",
"clearCache": "Очистити кеш",
"cacheHits": "Звернення до кешу",
"cacheMisses": "Промахи кешу",
"hitRate": "Рейтинг попадань",
"cacheEntries": "Записи кешу",
"circuitBreaker": "Автоматичний вимикач",
"retryPolicy": "Політика повторних спроб",
"maxRetries": "Макс. повторних спроб",
"retryDelay": "Затримка повтору",
"timeoutMs": "Час очікування (мс)",
"enableSystemPrompt": "Увімкнути системну підказку",
"systemPromptText": "Текст системної підказки",
"enableThinking": "Увімкнути мислення",
"maxThinkingTokens": "Макс жетонів мислення",
"enableProxy": "Увімкнути проксі",
"proxyUrl": "URL проксі",
"pricingRates": "Формат ціноутворення",
"currentPricing": "Огляд поточних цін",
"loadingPricing": "Завантаження даних про ціни...",
"noPricing": "Немає даних про ціни",
"input": "Введення",
"output": "Вихід",
"cached": "Кешовано",
"reasoning": "Міркування",
"cacheCreation": "Створення кешу",
"customPricing": "Спеціальне ціноутворення",
"databaseSize": "Розмір бази даних",
"backupDb": "Резервне копіювання бази даних",
"restoreDb": "Відновити базу даних",
"exportData": "Експорт даних",
"importData": "Імпорт даних",
"clearData": "Очистити всі дані",
"clearDataConfirm": "Це призведе до остаточного видалення всіх даних. Ви впевнені?",
"enableRequestLogs": "Увімкнути журнали запитів",
"logRetention": "Зберігання журналу",
"ipWhitelist": "Білий список IP-адрес",
"ipBlacklist": "Чорний список IP",
"addIP": "Додайте IP",
"savedSuccessfully": "Налаштування успішно збережено",
"ai": "ШІ",
"advanced": "Просунутий",
"localMode": "Локальний режим — усі дані, що зберігаються на вашій машині",
"settingsSectionsAria": "Розділи налаштувань",
"switchThemes": "Перемикання між світлою та темною темами",
"themeSelectionAria": "Вибір теми",
"themeLight": "світло",
"themeDark": "Темний",
"themeSystem": "система",
"hideHealthLogs": "Приховати журнали перевірки справності",
"hideHealthLogsDesc": "Коли ввімкнено, блокувати повідомлення [HealthCheck] на консолі сервера",
"themeAccent": "Колір теми",
"themeAccentDesc": "Оберіть готовий колір або створіть власну тему з одного кольору",
"themeCreate": "Створити тему",
"themeCustom": "Користувацька тема",
"themeBlue": "Синій",
"themeRed": "Червоний",
"themeGreen": "Зелений",
"themeViolet": "Фіолетовий",
"themeOrange": "Помаранчевий",
"themeCyan": "Ціан",
"promptCache": "Кеш підказок",
"flushCache": "Очистити кеш",
"flushing": "Промивання…",
"size": "Розмір",
"hits": "Хіти",
"evictions": "Виселення",
"loadingCacheStats": "Завантаження статистики кешу…",
"globalProxy": "Глобальний проксі",
"globalProxyDesc": "Налаштуйте глобальний вихідний проксі для всіх викликів API. Окремі постачальники, комбінації та ключі можуть замінити це.",
"noGlobalProxy": "Глобальний проксі не налаштовано",
"globalLabel": "Глобальний",
"configure": "Налаштувати",
"globalSystemPrompt": "Глобальна системна підказка",
"systemPromptDesc": "Впроваджується в усі запити на рівні проксі",
"saved": "Збережено",
"systemPromptPlaceholder": "Введіть системний запит, щоб додати в усі запити...",
"systemPromptHint": "Ця підказка додається до системного повідомлення кожного запиту. Використовуйте для загальних інструкцій, інструкцій з безпеки або правил форматування відповідей.",
"chars": "{count} символів",
"thinkingBudgetTitle": "Мислення про бюджет",
"thinkingBudgetDesc": "Контролюйте використання маркера міркування AI для всіх запитів",
"passthrough": "Прохідний",
"passthroughDesc": "Без змін — клієнт контролює бюджет мислення",
"auto": "Авто",
"autoDesc": "Видаліть усі конфігурації мислення — дозвольте постачальнику вирішувати",
"custom": "Custom",
"customDesc": "Встановіть фіксований бюджет токенів для всіх запитів",
"adaptive": "Адаптивний",
"adaptiveDesc": "Масштабуйте бюджет на основі складності запиту",
"effortNone": "Жодного (0 токенів)",
"effortLow": "Низький (1 тис. жетонів)",
"effortMedium": "Середній (10 тисяч токенів)",
"effortHigh": "Високий (128 тис. токенів)",
"tokenBudget": "Токен Бюджет",
"tokens": "жетони",
"baseEffortLevel": "Базовий рівень зусиль",
"adaptiveHint": "Адаптивний режим масштабується від цього базового рівня на основі кількості повідомлень, використання інструментів і тривалості запиту.",
"requireLogin": "Вимагати авторизації",
"requireLoginDesc": "Коли УВІМКНЕНО, інформаційна панель вимагає пароля. Коли ВИМКНЕНО, доступ без входу.",
"currentPassword": "Поточний пароль",
"enterCurrentPassword": "Введіть поточний пароль",
"newPassword": "Новий пароль",
"enterNewPassword": "Введіть новий пароль",
"confirmPassword": "Підтвердьте новий пароль",
"confirmPasswordPlaceholder": "Підтвердьте новий пароль",
"passwordsNoMatch": "Паролі не збігаються",
"passwordUpdated": "Пароль успішно оновлено",
"failedUpdatePassword": "Не вдалося оновити пароль",
"errorOccurred": "Сталася помилка",
"updatePassword": "Оновити пароль",
"setPassword": "Встановити пароль",
"apiEndpointProtection": "API Endpoint Protection",
"requireAuthModels": "Вимагати ключ API для /models",
"requireAuthModelsDesc": "Якщо ON, кінцева точка /v1/models повертає 404 для неавтентифікованих запитів. Запобігає виявленню моделі неавторизованими користувачами.",
"blockedProviders": "Заблоковані постачальники",
"blockedProvidersDesc": "Приховати певних постачальників у відповіді /v1/models. Заблоковані постачальники не відображатимуться в списках моделей.",
"providersBlocked": "{count} постачальник(ів) заблоковано для /models",
"blockProviderTitle": "Заблокувати {provider}",
"unblockProviderTitle": "Розблокувати {provider}",
"routingStrategy": "Стратегія маршрутизації",
"fillFirst": "Заповніть спочатку",
"fillFirstDesc": "Використовуйте облікові записи в пріоритетному порядку",
"roundRobin": "Кругова система",
"roundRobinDesc": "Перегляньте всі облікові записи",
"p2c": "P2C",
"p2cDesc": "Виберіть 2 навмання, використовуйте здоровіший",
"random": "Випадковий",
"randomDesc": "Випадковий рахунок для кожного запиту",
"leastUsed": "Найменш використовуваний",
"leastUsedDesc": "Виберіть нещодавно використовуваний обліковий запис",
"costOpt": "Вартість Opt",
"costOptDesc": "Віддайте перевагу найдешевшому доступному обліковому запису",
"strictRandom": "Strict Random",
"strictRandomDesc": "Shuffle deck — uses each account once before reshuffling",
"stickyLimit": "Sticky Limit",
"stickyLimitDesc": "Дзвінки на обліковий запис перед переходом",
"modelAliases": "Псевдоніми моделі",
"modelAliasesTitle": "Псевдоніми моделей",
"modelAliasesDesc": "Шаблони шаблонів узагальнення для зміни назв моделей • Використовуйте * та ?",
"addCustomAlias": "Додати власний псевдонім",
"deprecatedModelId": "Застарілий ID моделі",
"newModelId": "Новий ID моделі",
"customAliases": "Власні псевдоніми",
"builtInAliases": "Вбудовані псевдоніми",
"backgroundDegradationTitle": "Деградація фонових завдань",
"backgroundDegradationDesc": "Автоматично виявляє фонові завдання (заголовки, резюме) і перенаправляє на дешевші моделі",
"enableDegradation": "Увімкнути деградацію фонових завдань",
"enableDegradationHint": "Коли увімкнено, фонові завдання, такі як генерація заголовків і підсумування, автоматично перенаправляються на дешевші моделі",
"tasksDetected": "Виявлено завдань",
"degradationMap": "Карта деградації моделей",
"premiumModel": "Преміум-модель",
"cheapModel": "Дешева модель",
"detectionPatterns": "Шаблони виявлення",
"newPattern": "напр. \"згенерувати заголовок\"",
"aliasPatternPlaceholder": "клод-сонет-*",
"aliasTargetPlaceholder": "claude-sonnet-4-20250514",
"pattern": "Візерунок",
"targetModel": "Цільова модель",
"add": "+ Додати",
"session": "Сесія",
"sessionDetailsAria": "Деталі сеансу",
"status": "Статус",
"authenticated": "Автентифіковано",
"guest": "Гість",
"loginTime": "Час входу",
"sessionAge": "Вік сесії",
"browser": "Браузер",
"clearLocalData": "Очистити локальні дані",
"logout": "Вийти",
"clearLocalDataConfirm": "Очистити всі локальні дані? Це скине ваші налаштування.",
"unknown": "Невідомий",
"systemActor": "система",
"ipAccessControl": "Контроль IP доступу",
"ipAccessControlDesc": "Блокувати або дозволяти певні IP-адреси",
"ipModeDisabled": "Вимкнено",
"ipModeBlacklist": "Чорний список",
"ipModeWhitelist": "Білий список",
"ipModeWhitelistPriority": "Пріоритет WL",
"addIpAddress": "Додайте IP-адресу",
"ipAddressPlaceholder": "192.168.1.0/24 або 10.0.*.*",
"block": "+ Блокувати",
"allow": "+ Дозволити",
"blocked": "Заблоковано ({count})",
"allowed": "Дозволено ({count})",
"temporaryBans": "Тимчасові заборони ({count})",
"minLeft": "Залишилося {min}хв",
"auditLog": "Журнал аудиту",
"searchAuditLogs": "Шукати журнали аудиту...",
"failedLoadAuditLog": "Не вдалося завантажити журнал аудиту",
"noAuditEvents": "Подій аудиту не знайдено",
"action": "Дія",
"actor": "Актор",
"details": "Подробиці",
"time": "час",
"fallbackChainsTitle": "Резервні ланцюги",
"fallbackChainsDesc": "Визначте запасний порядок постачальника для кожної моделі",
"addChain": "+ Додати ланцюг",
"modelName": "Назва моделі",
"modelNamePlaceholder": "claude-sonnet-4-20250514",
"providersCommaSeparated": "Постачальники (через кому, у порядку пріоритету)",
"providersCommaSeparatedPlaceholder": "антропний, опенай, геміні",
"createChain": "Створити ланцюжок",
"noFallbackChains": "Без запасних ланцюгів",
"noFallbackChainsDesc": "Створіть ланцюжок, щоб визначити запасний порядок постачальника для моделі.",
"loadingFallbackChains": "Завантаження резервних ланцюжків...",
"deleteChainConfirm": "Видалити резервний ланцюжок для \"{model}\"?",
"chainCreated": "Створено ланцюжок для {model}",
"chainDeleted": "Ланцюжок видалено для {model}",
"failedCreateChain": "Не вдалося створити ланцюжок",
"failedDeleteChain": "Не вдалося видалити ланцюжок",
"deleteChain": "Видалити ланцюжок",
"fillModelAndProviders": "Введіть назву моделі та постачальників",
"addAtLeastOneProvider": "Додайте хоча б одного постачальника",
"comboDefaultsTitle": "Комбіновані параметри за замовчуванням",
"globalComboConfig": "Конфігурація глобального комбо",
"defaultStrategy": "Стратегія за замовчуванням",
"defaultStrategyDesc": "Застосовується до нових комбо без явної стратегії",
"comboStrategyAria": "Комбінована стратегія",
"priority": "Пріоритет",
"weighted": "Зважений",
"maxRetriesLabel": "Макс. повторних спроб",
"retryDelayLabel": "Затримка повтору (мс)",
"timeoutLabel": "Час очікування (мс)",
"healthCheck": "Перевірка стану здоров'я",
"healthCheckDesc": "Попередньо уточнюйте наявність у провайдера",
"trackMetrics": "Відстежувати показники",
"trackMetricsDesc": "Записуйте показники комбінованих запитів",
"providerOverrides": "Перевизначення постачальника",
"providerOverridesDesc": "Перевизначити час очікування та повторити спроби для кожного постачальника. Налаштування постачальника замінюють глобальні налаштування за умовчанням.",
"providerMaxRetriesAria": "Максимальна кількість повторних спроб: {provider}",
"providerTimeoutAria": "{provider} тайм-аут мс",
"removeProviderOverrideAria": "Видалити перевизначення {provider}",
"newProviderNamePlaceholder": "напр. гугли, відкривай...",
"newProviderNameAria": "Нова назва провайдера",
"retries": "повтори",
"ms": "мс",
"saveComboDefaults": "Зберегти комбіновані параметри за замовчуванням",
"maxNestingDepth": "Максимальна глибина вкладення",
"concurrencyPerModel": "Одночасність / Модель",
"queueTimeout": "Час очікування черги (мс)",
"providerProfiles": "Профілі постачальників",
"providerProfilesDesc": "Окремі параметри стійкості для постачальників OAuth (на основі сеансу) і ключа API (з вимірюванням). Постачальники OAuth мають суворіші порогові значення через нижчі обмеження швидкості.",
"oauthProviders": "Постачальники OAuth",
"apiKeyProviders": "Постачальники ключів API",
"transientCooldown": "Перехідний час відновлення",
"rateLimitCooldown": "Обмеження швидкості відновлення",
"maxBackoffLevel": "Максимальний рівень резервування",
"cbThreshold": "Поріг CB",
"cbResetTime": "Час скидання CB",
"rateLimiting": "Обмеження швидкості",
"rateLimitingDesc": "Постачальники ключів API автоматично обмежуються швидкістю з безпечними параметрами за замовчуванням. Обмеження вивчаються із заголовків відповідей і адаптуються з часом.",
"defaultSafetyNet": "Стандартна мережа безпеки",
"rpm": "RPM",
"minGap": "Мінімальний розрив",
"maxConcurrent": "Максимальна одночасність",
"activeLimiters": "Активні обмежувачі",
"noActiveLimiters": "Активних обмежувачів швидкості ще немає.",
"reservoir": "Водосховище",
"running": "Біг",
"queued": "У черзі",
"circuitBreakers": "Автоматичні вимикачі",
"breakerStateClosed": "Закрито",
"breakerStateOpen": "відкритий",
"breakerStateHalfOpen": "Напіввідкритий",
"tripped": "{count} спрацював",
"healthy": "{count} здоровий",
"resetAll": "Скинути все",
"noCircuitBreakers": "Ще немає активних автоматичних вимикачів. Вони створюються автоматично, коли запити проходять через комбінований конвеєр.",
"failures": "{count} помилка(и)",
"policiesLocked": "Політики та заблоковані ідентифікатори",
"allOperational": "Усі системи в робочому стані — жодних блокувань чи спрацьованих вимикачів",
"loadingPolicies": "Завантаження правил...",
"lockedIdentifiers": "Заблоковані ідентифікатори",
"unlockedIdentifier": "Розблоковано: {identifier}",
"sinceDate": "з {date}",
"forceUnlock": "Примусове розблокування",
"unlocking": "Розблокування...",
"failedUnlock": "Не вдалося розблокувати",
"failedLoadWithStatus": "Не вдалося завантажити: {status}",
"failedLoadResilience": "Не вдалося завантажити статус стійкості",
"saveFailed": "Не вдалося зберегти",
"resetFailed": "Помилка скидання",
"loadingResilience": "Завантаження стану стійкості...",
"retry": "Повторіть спробу",
"systemStorage": "Система та зберігання",
"allDataLocal": "Усі дані зберігаються локально на вашій машині",
"databasePath": "Шлях до бази даних",
"exportDatabase": "Експорт бази даних",
"exportAll": "Експортувати все (.tar.gz)",
"importDatabase": "Імпорт бази даних",
"confirmDbImport": "Підтвердьте імпорт бази даних",
"confirmDbImportDesc": "Усі поточні дані буде замінено вмістом із {file}. Резервна копія буде створена автоматично перед імпортом.",
"yesImport": "Так, імпорт",
"lastBackup": "Остання резервна копія",
"noBackupYet": "Резервної копії ще немає",
"backupNow": "Резервне копіювання зараз",
"backupRestore": "Резервне копіювання та відновлення",
"viewBackups": "Переглянути резервні копії",
"hide": "Сховати",
"backupRetentionDesc": "Знімки бази даних створюються автоматично перед відновленням і кожні 15 хвилин, коли дані змінюються. Зберігання: 24 години на годину + 30 щоденних резервних копій із розумною ротацією.",
"loadingBackups": "Завантаження резервних копій...",
"noBackupsYet": "Резервних копій ще немає. Резервні копії створюватимуться автоматично при зміні даних.",
"backupsAvailable": "Доступні резервні копії {count}",
"refresh": "Оновити",
"confirm": "Підтвердити?",
"yes": "так",
"no": "немає",
"restore": "Відновити",
"invalidFileType": "Недійсний тип файлу. Приймаються лише файли .sqlite.",
"exportFailed": "Помилка експорту",
"exportFailedWithError": "Помилка експорту: {error}",
"fullExportFailedWithError": "Помилка повного експорту: {error}",
"backupCreated": "Створено резервну копію: {file}",
"restoreSuccess": "Відновлено! {connections} підключень, {nodes} вузлів, {combos} комбо, {apiKeys} ключів API.",
"importSuccess": "Базу даних імпортовано! {connections} підключень, {nodes} вузлів, {combos} комбо, {apiKeys} ключів API.",
"justNow": "тільки зараз",
"minutesAgo": "{count}хв тому",
"hoursAgo": "{count} год тому",
"daysAgo": "{count} дн. тому",
"backupReasonManual": "посібник",
"backupReasonPreRestore": "попереднє відновлення",
"connectionsCount": "{count, plural, one {# connection} other {# connections}}",
"noChangesSinceBackup": "Жодних змін з часу останнього резервного копіювання",
"backupFailed": "Помилка резервного копіювання",
"restoreFailed": "Не вдалося відновити",
"importFailed": "Помилка імпорту",
"errorDuringRestore": "Під час відновлення сталася помилка",
"errorDuringImport": "Під час імпорту сталася помилка",
"modelPricing": "Модель ціноутворення",
"modelPricingDesc": "Налаштуйте ставки витрат для моделі • Усі ставки в токенах $/1 млн",
"providers": "Провайдери",
"registry": "Реєстр",
"priced": "Ціна",
"searchProvidersModels": "Пошук постачальників або моделей...",
"showAll": "Показати все",
"noProvidersMatch": "Жоден провайдер не відповідає вашому запиту.",
"howPricingWorks": "Як працює ціноутворення",
"cacheWrite": "Запис кешу",
"unsaved": "незбережено",
"resetDefaults": "Скинути значення за замовчуванням",
"saveProvider": "Зберегти постачальника",
"saving": "Збереження...",
"model": "Модель",
"models": "моделі",
"moreProviders": "{count} більше постачальників",
"withPricing": "із налаштованим ціноутворенням",
"policiesCircuitBreakers": "Правила та автоматичні вимикачі",
"activeIssuesDetected": "Виявлено активні проблеми",
"off": "Вимкнено",
"resetPricingConfirm": "Відновити всі ціни для {provider} до стандартних?",
"pricingDescInput": "Вхід: токени, надіслані моделі",
"pricingDescOutput": "Результат: згенеровано токени",
"pricingDescCached": "Кешовано: повторно використаний вхід (~50% швидкості введення)",
"pricingDescReasoning": "Міркування: маркери мислення (повертається до результату)",
"pricingDescCacheWrite": "Cache Write: створення записів кешу (повертається до Input)",
"pricingDescFormula": "Вартість = (input × input_rate) + (output × output_rate) + (cached × cached_rate) на мільйон токенів.",
"pricingSettingsTitle": "Налаштування ціни",
"totalModels": "Всього моделей",
"active": "Активний",
"costCalculation": "Розрахунок вартості",
"costCalculationDesc": "Витрати розраховуються на основі використання токенів і ставок ціноутворення, налаштованих для кожної моделі.",
"pricingFormat": "Формат ціноутворення",
"pricingFormatDesc": "Усі ставки вказані в $/1 млн токенів (доларів за мільйон токенів).",
"tokenTypes": "Типи токенів",
"inputTokenDesc": "Стандартні маркери підказок",
"outputTokenDesc": "Жетони завершення/відповіді",
"cachedTokenDesc": "Кешовані маркери введення (зазвичай 50% швидкості введення)",
"reasoningTokenDesc": "Спеціальні маркери міркування/мислення (відкат до швидкості виведення)",
"cacheCreationTokenDesc": "Токени, що використовуються для створення записів кешу (резервний вихід до швидкості введення)",
"customPricingNote": "Ви можете змінити ціни за умовчанням для певних моделей. Спеціальні зміни мають пріоритет над автоматично визначеними цінами.",
"editPricing": "Редагувати ціни",
"viewFullDetails": "Переглянути повну інформацію",
"themeCoral": "Корал",
"cliFingerprint": "CLI Fingerprint Matching",
"cliFingerprintDesc": "Match native CLI binary signatures when proxying requests. Reorders headers and body fields to look identical to the official CLI tools. Your proxy IP is preserved.",
"cliFingerprintEnabled": "{count} provider(s) with CLI fingerprint active",
"enableFingerprintTitle": "Enable fingerprint for {provider}",
"disableFingerprintTitle": "Disable fingerprint for {provider}",
"routingAdvancedGuideTitle": "Розширені вказівки щодо маршрутизації",
"routingAdvancedGuideHint1": "Використовуйте Fill First для передбачуваного пріоритету, Round Robin для справедливості та P2C для стійкості до затримок.",
"routingAdvancedGuideHint2": "Якщо постачальники відрізняються за якістю/вартістю, почніть із Cost Opt для фонової роботи та Least Used для збалансованого зносу.",
"comboDefaultsGuideTitle": "Як налаштувати параметри комбо за замовчуванням",
"comboDefaultsGuideHint1": "Зберігайте низькі повторні спроби в потоках із низькою затримкою; збільшити час очікування лише для завдань тривалого покоління.",
"comboDefaultsGuideHint2": "Використовуйте перевизначення постачальника, коли одному постачальнику потрібна інша поведінка тайм-ауту/повторної спроби, ніж глобальні стандартні налаштування."
},
"translator": {
"title": "Перекладач",
"metaTitle": "Ігровий майданчик для перекладачів | OmniRoute",
"metaDescription": "Налагодження, тестування та візуалізація перекладів форматів API між постачальниками",
"playgroundTitle": "Майданчик для перекладачів",
"playground": "Дитячий майданчик",
"realtime": "Переклад в реальному часі",
"chatTester": "Тестер чату",
"testBench": "Випробувальний стенд",
"liveMonitor": "Живий монітор",
"modeDescriptionPlayground": "Вставте будь-яке тіло запиту API та подивіться, як OmniRoute перекладає його між форматами постачальників (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
"modeDescriptionChatTester": "Надсилайте реальні запити чату через OmniRoute та перевіряйте повний цикл: введення, перекладений запит, відповідь постачальника та перекладений вихід.",
"modeDescriptionTestBench": "Виконуйте попередньо визначені сценарії та порівнюйте сумісність між постачальниками та моделями.",
"modeDescriptionLiveMonitor": "Переглядайте події перекладу в режимі реального часу, коли запити надходять через OmniRoute.",
"modeDescriptionFallback": "Налагоджуйте, тестуйте та візуалізуйте, як OmniRoute перекладає запити API між постачальниками.",
"recentTranslations": "Останні переклади",
"noTranslations": "Перекладів ще немає",
"source": "Джерело",
"target": "Цільова",
"time": "час",
"model": "Модель",
"status": "Статус",
"latency": "Затримка",
"totalTranslations": "Загальні переклади",
"successful": "Успішний",
"errors": "Помилки",
"avgLatency": "Середня затримка",
"millisecondsShort": "{value}мс",
"notAvailableSymbol": "—",
"liveAutoRefreshing": "Live — Автоматичне оновлення",
"paused": "Призупинено",
"eventsAppearHint": "Події перекладу з’являються тут, коли запити проходять через OmniRoute. Використовуйте будь-який із цих методів для створення подій:",
"chatTesterTab": "Вкладка Тестер чату",
"testBenchTab": "Вкладка «Випробувальний стенд».",
"externalApiCalls": "Зовнішні виклики API",
"ideCliIntegrations": "Інтеграції IDE/CLI",
"inMemoryNote": "Примітка. Події зберігаються в пам’яті та скидаються під час перезапуску сервера.",
"ok": "добре",
"errorShort": "ERR",
"formatConverter": "Конвертер форматів",
"formatConverterDescription": "Вставте або введіть тіло запиту JSON. Перекладач автоматично визначить вихідний формат і перетворить його на цільовий формат. Використовуйте це, щоб налагодити, як OmniRoute перекладає запити між форматами (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
"input": "Введення",
"output": "Вихід",
"auto": "Авто",
"swapFormats": "Поміняти місцями формати",
"translateAction": "Перекласти",
"clear": "ясно",
"inputPlaceholder": "Вставте сюди текст запиту або виберіть шаблон нижче...",
"exampleTemplates": "Приклади шаблонів",
"exampleTemplatesHint": "— Натисніть, щоб завантажити",
"templateLoadHint": "Шаблон завантажує запит у форматі {format}. Змініть вихідний формат для завантаження в іншому форматі.",
"compatibilityTester": "Тестер сумісності",
"compatibilityReport": "Звіт про сумісність",
"testBenchDescription": "Запустіть попередньо визначені сценарії (простий чат, виклик інструментів тощо), щоб перевірити переклад і сумісність постачальника. Виберіть вихідний формат і цільового постачальника, а потім запустіть усі тести, щоб побачити відсоток сумісності. Використовуйте це, щоб дізнатися, які функції працюють у різних постачальників.",
"targetProvider": "Цільовий постачальник",
"runAllTests": "Виконайте всі тести",
"runTest": "Запустити тест",
"reRun": "Повторний запуск",
"running": "Біг...",
"passed": "пройшли",
"failed": "не вдалося",
"passedIconLabel": "✅ Пройшли",
"chunks": "шматки",
"scenarioSimpleChat": "Простий чат",
"scenarioToolCalling": "Виклик інструменту",
"scenarioMultiTurn": "Багатооборотний",
"scenarioThinking": "Мислення",
"scenarioSystemPrompt": "Системна підказка",
"scenarioStreaming": "Потокове передавання",
"templateNames": {
"simple-chat": "Простий чат",
"tool-calling": "Виклик інструменту",
"multi-turn": "Багатооборотний",
"thinking": "Мислення",
"system-prompt": "Системна підказка",
"streaming": "Потокове передавання"
},
"templateDescriptions": {
"simple-chat": "Основне текстове повідомлення",
"tool-calling": "Виклик функції/інструменту",
"multi-turn": "Розмова з історією",
"thinking": "Розширене мислення / міркування",
"system-prompt": "Комплексна системна інструкція",
"streaming": "Запит потокового передавання SSE"
},
"templatePayloads": {
"simpleChat": {
"system": "Ви корисний помічник.",
"userGreeting": "Привіт! Як справи сьогодні?"
},
"toolCalling": {
"userWeather": "Яка погода в Сан-Паулу?",
"toolDescription": "Отримайте поточну погоду для певного місця",
"cityNameDescription": "Назва міста"
},
"multiTurn": {
"system": "Ви помічник кодування.",
"userInitial": "Напишіть функцію для сортування масиву в Python.",
"assistantExample": "Ось проста функція сортування:\n\n```пітон\ndef sort_array(arr):\n повернути sorted(arr)\n```",
"userFollowUp": "Тепер відсортуйте його в порядку спадання."
},
"thinking": {
"question": "Чому дорівнює сума перших 100 простих чисел?"
},
"systemPrompt": {
"systemInstruction": "Ви старший інженер програмного забезпечення, який спеціалізується на розподілених системах. Дайте короткі відповіді на запитання, використовуючи передовий досвід галузі. Завжди надавайте приклади коду, коли це необхідно. Форматуйте свої відповіді за допомогою розмітки.",
"question": "Як реалізувати шаблон автоматичного вимикача?"
},
"streaming": {
"prompt": "Розкажіть мені коротку історію про робота, який вчиться малювати."
}
},
"openaiCompatibleLabel": "Сумісність з OpenAI",
"anthropicCompatibleLabel": "Антропна сумісність",
"noTemplateForFormat": "Немає шаблону для цього формату",
"translationFailed": "Помилка перекладу: {error}",
"pipelineDebugger": "Відладчик конвеєра",
"translationPipeline": "Конвеєр перекладу",
"pipelineVisualization": "Візуалізація трубопроводу",
"pipelineVisualizationHint": "Надішліть повідомлення, щоб побачити, як ваш запит проходить через виявлення → переклад → виклик постачальника.",
"chatTesterDescription": "Надсилайте повідомлення як певний клієнтський формат і перевіряйте кожен крок конвеєра перекладу.",
"chatTesterFlow": "Запит клієнта → Виявлення формату → OpenAI Intermediate → Формат постачальника → Відповідь",
"clickStepToInspect": "Натисніть будь-який крок, щоб перевірити дані на цьому етапі.",
"clientFormat": "Формат клієнта",
"provider": "Провайдер",
"modelPlaceholder": "Виберіть або введіть назву моделі...",
"sendMessageToSeePipeline": "Надішліть повідомлення, щоб побачити конвеєр перекладу",
"chatMessageHintPrefix": "Ваше повідомлення буде відформатовано як a",
"chatMessageHintSuffix": "запит, перекладений через конвеєр і надісланий вибраному постачальнику.",
"youWithFormat": "Ви ({format})",
"assistant": "помічник",
"typeMessage": "Введіть повідомлення...",
"send": "Надіслати",
"clientRequest": "Запит клієнта",
"clientRequestDescription": "Тіло запиту, як його надіслав би ваш клієнт",
"formatDetected": "Виявлено формат",
"formatDetectedDescription": "OmniRoute автоматично визначає формат API зі структури запиту",
"openaiIntermediate": "OpenAI Intermediate",
"openaiIntermediateDescription": "Усі формати спочатку нормалізуються до формату OpenAI (універсальний міст)",
"providerFormat": "Формат постачальника",
"providerFormatDescription": "Формат OpenAI перекладається на рідний формат постачальника",
"providerResponse": "Відповідь постачальника",
"providerResponseRawDescription": "Необроблена відповідь від API постачальника",
"providerResponseSseDescription": "Необроблений потік SSE від API постачальника",
"unexpectedError": "Сталася неочікувана помилка",
"error": "Помилка",
"errorMessage": "Помилка: {message}",
"requestFailed": "Запит не виконано",
"noTextExtracted": "(Текст не витягнуто)",
"liveMonitorDescriptionPrefix": "Показує події перекладу, коли виклики API проходять через OmniRoute. Події надходять із буфера в пам'яті (скидається під час перезавантаження). використання",
"liveMonitorDescriptionSuffix": "або виклики зовнішнього API для створення подій."
},
"usage": {
"title": "Використання",
"loggerTab": "Лісоруб",
"proxyTab": "Проксі",
"budgetManagement": "Управління бюджетом",
"budgetSaved": "Обмеження бюджету збережено",
"budgetSaveFailed": "Не вдалося зберегти бюджет",
"loadingBudgetData": "Завантаження даних бюджету...",
"noApiKeysTitle": "Немає ключів API",
"noApiKeysDescription": "Спочатку додайте ключі API, щоб установити обмеження бюджету.",
"apiKey": "Ключ API",
"todaysSpend": "Сьогоднішні витрати",
"thisMonth": "Цей місяць",
"setLimits": "Встановити обмеження",
"dailyLimitUsd": "Денний ліміт (USD)",
"monthlyLimitUsd": "Місячний ліміт (USD)",
"warningThresholdPercent": "Порогове значення попередження (%)",
"dailyLimitPlaceholder": "напр. 5.00",
"monthlyLimitPlaceholder": "напр. 50,00",
"warningThresholdPlaceholder": "80",
"saveLimits": "Зберегти обмеження",
"budgetOk": "Бюджет нормальний — залишилося {remaining}",
"budgetExceeded": "Бюджет перевищено — запити можуть бути заблоковані",
"totalRequests": "Всього запитів",
"noDataYet": "Даних ще немає",
"latency": "Затримка",
"latencyP50": "стор.50",
"latencyP95": "стор.95",
"latencyP99": "стор.99",
"promptCache": "Кеш підказок",
"systemHealth": "Здоров'я системи",
"entries": "Записи",
"activeCount": "{count} активний",
"openCircuitBreakersDetected": "Виявлено відкриті вимикачі",
"hitRate": "Рейтинг попадань",
"hitsMisses": "Попадання / промахи",
"circuitBreakers": "Автоматичні вимикачі",
"lockedIPs": "Заблоковані IP-адреси",
"lockoutsAutoRefreshHint": "Блокування обмеження швидкості для кожної моделі • Автоматичне оновлення 10 с",
"lockedCount": "{count, plural, one {# locked} other {# locked}}",
"timeLeft": "Залишилося {time}",
"howItWorks": "Як це працює",
"howItWorksSubtitle": "Дізнайтеся, як оцінки підтверджують ваші відповіді LLM",
"define": "Визначити",
"defineStepDescription": "Створюйте тестові випадки з підказками введення та очікуваними критеріями виводу, використовуючи такі стратегії, як містить, регулярний вираз або точна відповідність.",
"run": "бігти",
"runStepDescription": "Виконуйте тестові випадки на кінцевих точках LLM через OmniRoute. Кожен випадок надсилається як справжній запит API.",
"evaluate": "Оцініть",
"evaluateStepDescription": "Відповіді порівнюються з очікуваними критеріями. Перегляньте відповідність/незадоволення для кожного випадку з показниками затримки та детальним відгуком.",
"evalSuites": "Комплекти оцінювання",
"evalSuitesHint": "Натисніть набір, щоб переглянути тестові випадки, а потім запустіть, щоб оцінити свої кінцеві точки LLM",
"evalsLoading": "Завантаження eval suites...",
"noEvalSuitesFound": "Eval Suites не знайдено",
"noEvalSuitesDescription": "Комплекти Eval можна визначити через API або в коді. Вони перевіряють вихідні дані моделі на очікувані результати, використовуючи такі стратегії, як містять, регулярні вирази, точна відповідність і спеціальні функції.",
"columnCase": "Справа",
"columnStatus": "Статус",
"columnLatency": "Затримка",
"columnDetails": "Подробиці",
"columnModel": "Модель",
"columnStrategy": "Стратегія",
"columnExpected": "Очікуваний",
"statsSuites": "Люкс",
"statsTestCases": "Тестові випадки",
"statsModels": "Моделі",
"statsCoverage": "Покриття",
"statsStrategiesCount": "{count} стратегії",
"evaluationStrategies": "Стратегії оцінювання",
"modelsUnderTest": "Тестуються моделі",
"searchSuitesPlaceholder": "Пошук комплектів...",
"passSuffix": "пропуск",
"casesCount": "{count, plural, one {# case} other {# cases}}",
"runEval": "Запустіть Eval",
"runningProgress": "Виконується {current}/{total}...",
"passRate": "прохідний бал",
"summaryBreakdown": "{passed} пройдено · {failed} не виконано · {total} всього",
"passedIconLabel": "✅ Пройшли",
"failedIconLabel": "❌ Не вдалося",
"detailsContains": "Містить: \"{term}\"",
"detailsRegex": "Регулярний вираз: {pattern}",
"detailsExpected": "Очікується: \"{expected}\"",
"noResultsYet": "Результатів ще немає",
"testCasesCount": "Тестові випадки ({count})",
"noTestCasesDefined": "Тестових випадків не визначено",
"runEvalHint": "Натисніть «Run Eval», щоб виконати всі кейси щодо вашої кінцевої точки LLM. Кожен тест надсилає реальний запит через OmniRoute.",
"notifyNoTestCases": "Для цього набору тестів не визначено",
"notifyAllCasesPassed": "Усі випадки {total} пройдено ✅",
"notifySomeCasesFailed": "{passed}/{total} пройдено, {failed} не виконано",
"notifyEvalRunFailed": "Помилка виконання Eval",
"notifyEvalTitle": "Оцінка: {name}",
"modelEvals": "Модельні оцінки",
"evalsHeroDescription": "Протестуйте та перевірте свої кінцеві точки LLM, запустивши попередньо визначені пакети оцінок. Кожен набір містить тестові випадки, які надсилають реальні підказки через OmniRoute та порівнюють відповіді з очікуваними критеріями, допомагаючи вам виявити регресії, порівняти моделі та забезпечити якість відповіді між провайдерами.",
"qualityValidation": "Перевірка якості",
"modelComparison": "Порівняння моделей",
"regressionDetection": "Виявлення регресії",
"latencyBenchmarks": "Контрольні показники затримки",
"modelLockouts": "Блокування моделі",
"noLockouts": "Наразі немає заблокованих моделей",
"activeSessions": "Активні сесії",
"noSessions": "Немає активних сеансів",
"sessionsHint": "Сеанси з’являються, коли запити надходять через проксі-сервер",
"sessionsTrackedHint": "Відстежується через запит відбитків пальців • Автоматичне оновлення 5 с",
"session": "Сесія",
"age": "Вік",
"requests": "Запити",
"connection": "Підключення",
"durationMillisecondsShort": "{value}мс",
"durationSecondsShort": "{value}s",
"durationMinutesShort": "{value}м",
"durationHoursShort": "{value}h",
"reasonSeparator": " - ",
"notAvailableSymbol": "-",
"providerLimits": "Обмеження постачальника",
"noProviders": "Немає підключених постачальників",
"connectProvidersForQuota": "Підключайтеся до постачальників за допомогою OAuth, щоб відстежувати обмеження квоти та використання API.",
"accountsCount": "{count, plural, one {# account} other {# accounts}}",
"filteredFromCount": "(відфільтровано з {count})",
"autoRefresh": "Автооновлення",
"refreshAll": "Оновити все",
"loadingQuotas": "Завантаження...",
"account": "Обліковий запис",
"modelQuotas": "Модельні квоти",
"lastUsed": "Останнє використання",
"actions": "Дії",
"refreshQuota": "Оновити квоту",
"today": "Сьогодні",
"tomorrow": "завтра",
"dayTimeFormat": "{day}, {time}",
"inDuration": "в {duration}",
"notApplicable": "N/A",
"rawPlanWithValue": "Необроблений план: {plan}",
"noPlanFromProvider": "Без плану від провайдера",
"noQuotaData": "Немає даних про квоти",
"ungrouped": "Ungrouped",
"viewFlat": "Flat",
"viewByEnvironment": "By Environment",
"noQuotaDataAvailable": "Немає даних про квоти",
"noAccountsForTierFilter": "Не знайдено облікових записів для фільтра рівня",
"tierAll": "всі",
"tierEnterprise": "підприємство",
"tierTeam": "команда",
"tierBusiness": "Бізнес",
"tierUltra": "Ультра",
"tierPro": "Pro",
"tierPlus": "Плюс",
"tierFree": "безкоштовно",
"tierUnknown": "Невідомий"
},
"modals": {
"waitingAuth": "Очікування авторизації",
"verificationUrl": "URL перевірки",
"yourCode": "Ваш код",
"remoteAccess": "Віддалений доступ:",
"connectedSuccess": "Підключено успішно!",
"connectionFailed": "Збій підключення",
"chooseAuthMethod": "Виберіть метод автентифікації:",
"awsBuilderId": "Ідентифікатор AWS Builder",
"awsIamIdentity": "Центр ідентифікації AWS IAM",
"googleAccount": "Обліковий запис Google",
"githubAccount": "Обліковий запис GitHub",
"importToken": "Імпорт маркера",
"pasteToken": "Вставте маркер оновлення з Kiro IDE.",
"awsRegion": "Регіон AWS",
"autoDetecting": "Автоматичне визначення токенів...",
"readingFromCache": "Читання з кешу AWS SSO",
"readingFromCursor": "Читання з бази даних Cursor IDE",
"initializing": "Ініціалізація...",
"pricingConfig": "Конфігурація ціни",
"loadingPricing": "Завантаження даних про ціни...",
"pricingRatesFormat": "Формат ціноутворення",
"noPricingData": "Немає даних про ціни",
"noModelsFound": "Моделі не знайдено"
},
"loggers": {
"allProviders": "Усі постачальники",
"allModels": "Всі моделі",
"allAccounts": "Усі облікові записи",
"allApiKeys": "Усі ключі API",
"allTypes": "Всі типи",
"allLevels": "Всі рівні",
"modelAZ": "Модель A-Z",
"modelZA": "Модель Z-A",
"loadingLogs": "Завантаження журналів...",
"loadingProxyLogs": "Завантаження журналів проксі...",
"noLogEntries": "Записів у журналі не знайдено",
"noPayloadData": "Для цього запису журналу немає даних про корисне навантаження.",
"proxyEvent": "Проксі-подія",
"proxy": "Проксі",
"level": "Рівень",
"directNative": "Прямий (рідний)",
"combo": "комбо",
"inputTokens": "Я:",
"outputTokens": "О:"
},
"stats": {
"usageOverview": "Огляд використання",
"outputTokens": "Вихідні жетони",
"totalCost": "Загальна вартість",
"usageByModel": "Використання за моделлю",
"usageByAccount": "Використання обліковим записом",
"failedToLoad": "Не вдалося завантажити статистику використання.",
"tokenHealth": "Токен здоров'я",
"totalOAuth": "Загальний OAuth",
"healthy": "Здоровий",
"warning": "Попередження",
"errored": "Помилка",
"lastCheck": "Остання перевірка",
"noData": "Немає даних",
"share": "Поділіться",
"unableToLoad": "Не вдалося завантажити системні показники",
"product": "Продукт",
"resources": "Ресурси",
"company": "Компанія"
},
"auth": {
"welcome": "Ласкаво просимо",
"signIn": "Увійдіть",
"enterPassword": "Введіть свій пароль, щоб продовжити",
"password": "Пароль",
"unifiedProxy": "Unified AI API Proxy",
"unifiedAiApiProxy": "Unified AI API Proxy",
"unifiedAiApiProxyDesc": "Направляйте запити до кількох постачальників штучного інтелекту через одну кінцеву точку. Вбудоване балансування навантаження, відновлення після відмови та відстеження використання.",
"passwordNotEnabled": "Захист паролем не ввімкнено",
"loading": "Завантаження...",
"invalidPassword": "Недійсний пароль",
"errorOccurredRetry": "Сталася помилка. Спробуйте ще раз.",
"configureInstance": "Давайте налаштуємо ваш екземпляр OmniRoute",
"runOnboardingWizard": "Запустіть майстер адаптації, щоб налаштувати пароль і підключити свого першого постачальника AI.",
"startOnboarding": "Почніть адаптацію",
"secureYourInstance": "Захистіть свій екземпляр",
"setPasswordDescription": "Встановіть пароль, щоб захистити свою інформаційну панель і кінцеві точки API від несанкціонованого доступу.",
"configurePassword": "Налаштувати пароль",
"continue": "Продовжити",
"windowWillClose": "Це вікно закриється автоматично...",
"closeTabNow": "Ви можете закрити цю вкладку зараз.",
"copyUrlManual": "Скопіюйте URL-адресу з адресного рядка та вставте її в додаток.",
"accessDeniedDescription": "Ви не маєте дозволу на доступ до цього ресурсу. Перевірте свій ключ API або зверніться до адміністратора.",
"goToDashboard": "Перейдіть на інформаційну панель",
"featureMultiProviderTitle": "Багатопровайдер",
"featureMultiProviderDesc": "OpenAI, Anthropic, Google тощо",
"featureLoadBalancingTitle": "Балансування навантаження",
"featureLoadBalancingDesc": "Розповсюджуйте запити розумно",
"featureUsageTrackingTitle": "Відстеження використання",
"featureUsageTrackingDesc": "Відстежуйте витрати та токени",
"resetPassword": "Скинути пароль",
"resetDescription": "Виберіть спосіб відновлення доступу до інформаційної панелі",
"stopServer": "Зупиніть роботу сервера OmniRoute",
"processing": "Обробка...",
"pleaseWait": "Зачекайте, поки ми завершимо авторизацію.",
"authSuccess": "Авторизація успішна!",
"copyUrl": "Скопіюйте цей URL",
"accessDenied": "Доступ заборонено",
"methodCliTitle": "Спосіб 1: Скидання CLI",
"methodCliDescription": "Виконайте таку команду на сервері, де запущено OmniRoute:",
"methodCliHint": "Вам буде запропоновано встановити новий пароль. Спочатку потрібно зупинити сервер.",
"methodManualTitle": "Спосіб 2: Ручне скидання",
"methodManualDescription": "Видаліть пароль з бази даних і встановіть новий під час запуску:",
"setPasswordInYour": "Встановіть новий пароль у своєму",
"fileLabelSuffix": "файл:",
"newPasswordPlaceholder": аш_новий_пароль",
"deleteSettingsFile": "Видалити",
"orRemovePasswordHashField": "або видаліть поле passwordHash",
"restartServerWithNewPassword": "Перезапустіть сервер - він використовуватиме новий пароль",
"backToLogin": "Назад до входу",
"forgotPassword": "Забули пароль?",
"defaultPasswordHint": "Default password: 123456 (unless INITIAL_PASSWORD was set)"
},
"landing": {
"brandName": "OmniRoute",
"navigateHome": "Перейти до дому",
"toggleMenu": "Переключити меню",
"featuresLink": "особливості",
"docsLink": "документи",
"github": "GitHub",
"versionLive": "версія 1.0 вже доступна",
"oneEndpoint": "Одна кінцева точка для",
"allProviders": "Усі постачальники AI",
"heroDescription": "Проксі-сервер кінцевої точки штучного інтелекту з веб-панеллю порт JavaScript для CLIProxyAPI. Бездоганно працює з Claude Code, OpenAI Codex, Cline, RooCode та іншими інструментами CLI.",
"getStarted": "Почніть роботу",
"viewOnGithub": "Переглянути на GitHub",
"powerfulFeatures": "Потужні функції",
"featuresSubtitle": "Все, що вам потрібно для керування інфраструктурою штучного інтелекту в одному місці, створеному для масштабування.",
"featureUnifiedEndpointTitle": "Уніфікована кінцева точка",
"featureUnifiedEndpointDesc": "Доступ до всіх постачальників через єдину стандартну URL-адресу API.",
"featureEasySetupTitle": "Легке налаштування",
"featureEasySetupDesc": "Почніть працювати за лічені хвилини за допомогою команди npx.",
"featureModelFallbackTitle": "Запасна модель",
"featureModelFallbackDesc": "Автоматично перемикайте постачальників у разі збою або великої затримки.",
"featureUsageTrackingTitle": "Відстеження використання",
"featureUsageTrackingDesc": "Детальна аналітика та моніторинг витрат для всіх моделей.",
"featureOAuthApiKeysTitle": "Ключі OAuth і API",
"featureOAuthApiKeysDesc": "Безпечно керуйте обліковими даними в одному сховищі.",
"featureCloudSyncTitle": "Хмарна синхронізація",
"featureCloudSyncDesc": "Миттєво синхронізуйте конфігурації на всіх пристроях.",
"featureCliSupportTitle": "Підтримка CLI",
"featureCliSupportDesc": "Працює з Claude Code, Codex, Cline, Cursor тощо.",
"featureDashboardTitle": "Приладова панель",
"featureDashboardDesc": "Візуальна інформаційна панель для аналізу трафіку в реальному часі.",
"howItWorks": "Як працює OmniRoute",
"howItWorksDescription": "Дані безперешкодно передаються від вашої програми через наш інтелектуальний рівень маршрутизації до найкращого постачальника для роботи.",
"howItWorksStep1Title": "1. CLI & SDK",
"howItWorksStep1Description": "Ваші запити починаються з ваших улюблених інструментів або нашого єдиного SDK. Просто змініть базову URL-адресу.",
"howItWorksStep2Title": "2. OmniRoute Hub",
"howItWorksStep2Description": "Наш механізм аналізує запит, перевіряє працездатність постачальника та маршрути для найменшої затримки або вартості.",
"howItWorksStep3Title": "3. Постачальники AI",
"howItWorksStep3Description": "Запит виконується OpenAI, Anthropic, Gemini або іншими миттєво.",
"getStartedIn30Seconds": "Почніть роботу за 30 секунд",
"getStartedDescription": "Встановіть OmniRoute, налаштуйте своїх провайдерів за допомогою веб-панелі та почніть маршрутизувати запити ШІ.",
"installOmniRoute": "Встановіть OmniRoute",
"installStepDescription": "Виконайте команду npx, щоб миттєво запустити сервер",
"openDashboard": "Відкрийте інформаційну панель",
"openDashboardStepDescription": "Налаштуйте провайдерів і ключі API через веб-інтерфейс",
"routeRequests": "Запити на маршрут",
"routeRequestsStepDescription": "Спрямуйте свої інструменти CLI на {endpoint}",
"terminal": "термінал",
"copy": "Копія",
"copied": "✓ Скопійовано",
"startingOmniRoute": "Запуск OmniRoute...",
"serverRunningOnLabel": "Сервер працює",
"dashboardLabel": "Приладова панель",
"readyToRoute": "Готовий до маршруту! ✓",
"configureProvidersNote": "📝 Налаштуйте постачальників на інформаційній панелі або використовуйте змінні середовища",
"dataLocation": "Розташування даних:",
"dataLocationMacLinux": " macOS/Linux:",
"dataLocationWindows": " Windows:",
"product": "Продукт",
"dashboardLink": "Приладова панель",
"changelog": "Журнал змін",
"resources": "Ресурси",
"documentation": "Документація",
"npm": "НПМ",
"legal": "юридичний",
"mitLicense": "Ліцензія MIT",
"footerTagline": "Уніфікована кінцева точка для створення ШІ. З легкістю підключайтеся, маршрутизуйте та керуйте своїми постачальниками AI.",
"copyright": "© {year} OmniRoute. Всі права захищені.",
"flowToolClaudeCode": "Клод Код",
"flowToolOpenAICodex": "Кодекс OpenAI",
"flowToolCline": "Клайн",
"flowToolCursor": "Курсор",
"flowProviderOpenAI": "OpenAI",
"flowProviderAnthropic": "Антропний",
"flowProviderGemini": "Близнюки",
"flowProviderGithubCopilot": "Копілот GitHub",
"interactiveDiagram": "Інтерактивна діаграма, видима на робочому столі",
"ctaTitle": "Готові спростити інфраструктуру ШІ?",
"ctaDescription": "Приєднуйтесь до розробників, які оптимізують свою інтеграцію ШІ за допомогою OmniRoute. З відкритим вихідним кодом і безкоштовно.",
"startFree": "Почніть безкоштовно",
"readDocumentation": "Прочитайте документацію"
},
"docs": {
"title": "Документація",
"quickStart": "Швидкий старт",
"features": "особливості",
"supportedProviders": "Підтримувані постачальники",
"supportedProvidersToc": "Провайдери",
"commonUseCases": "Загальні випадки використання",
"clientCompatibility": "Сумісність клієнта",
"protocolsToc": "Protocols",
"apiReference": "Довідник API",
"method": "метод",
"path": "шлях",
"notes": "Примітки",
"modelPrefixes": "Префікси моделей",
"prefix": "Префікс",
"troubleshooting": "Усунення несправностей",
"supportsChat": "Підтримує кінцеві точки чату та відповідей.",
"oauthAutoRefresh": "З’єднання OAuth із автоматичним оновленням маркера.",
"fullStreaming": "Повна підтримка потокового передавання для всіх моделей.",
"docsLabel": "документи",
"docsHeroDescription": "Штучний шлюз для LLM із кількома постачальниками. Одна кінцева точка для OpenAI, Anthropic, Gemini, GitHub Copilot, Claude Code, Cursor та ще понад 20 постачальників.",
"openDashboard": "Відкрийте інформаційну панель",
"endpointPage": "Сторінка кінцевої точки",
"github": "GitHub",
"reportIssue": "Повідомити про проблему",
"onThisPage": "На цій сторінці",
"documentationVersion": "Документація - v{version}",
"quickStartStep1Title": "1. Встановіть і запустіть",
"quickStartStep1Prefix": "бігти",
"quickStartStep1Middle": "або клонуйте з GitHub і запустіть",
"quickStartStep2Title": "2. Створіть ключ API",
"quickStartStep2Text": "Перейдіть до Кінцева точка -> Зареєстровані ключі. Згенеруйте один ключ для кожного середовища.",
"quickStartStep3Title": "3. Підключити провайдерів",
"quickStartStep3Text": "Додайте облікові записи постачальників за допомогою входу OAuth, ключа API або безкоштовного автоматичного підключення.",
"quickStartStep4Title": "4. Встановіть базову URL-адресу клієнта",
"quickStartStep4Prefix": "Наведіть свій клієнт IDE або API на",
"quickStartStep4Suffix": "Використовуйте, наприклад, префікс провайдера",
"featureRoutingTitle": "Маршрутизація з кількома провайдерами",
"featureRoutingText": "Направляйте запити до 30+ постачальників штучного інтелекту через єдину кінцеву точку, сумісну з OpenAI. Підтримує чат, відповіді, аудіо та API зображень.",
"featureCombosTitle": "Комбо і балансування",
"featureCombosText": "Створюйте комбіновані моделі з резервними ланцюжками та стратегіями балансування: циклічні, пріоритетні, випадкові, найменш використовувані та оптимізовані за витратами.",
"featureUsageTitle": "Відстеження використання та витрат",
"featureUsageText": "Підрахунок токенів у реальному часі, розрахунок вартості для кожного постачальника/моделі та детальна розбивка використання за ключем API та обліковим записом.",
"featureAnalyticsTitle": "Інформаційна панель Analytics",
"featureAnalyticsText": "Візуальна аналітика з діаграмами для запитів, токенів, помилок, затримок, витрат і популярності моделі з часом.",
"featureHealthTitle": "Моніторинг здоров'я",
"featureHealthText": "Перевірки працездатності в реальному часі, статус постачальника, стани автоматичного вимикача та автоматичне виявлення обмеження швидкості з експоненціальним відстрочкою.",
"featureCliTitle": "Інструменти CLI",
"featureCliText": "Керуйте конфігураціями IDE, експортуйте/імпортуйте резервні копії, виявляйте профілі Codex і налаштовуйте параметри з інформаційної панелі.",
"featureSecurityTitle": "Безпека та політика",
"featureSecurityText": "Автентифікація ключа API, IP-фільтрація, захист від оперативного ін’єкції, політики домену, керування сеансами та журнал аудиту.",
"featureCloudSyncTitle": "Хмарна синхронізація",
"featureCloudSyncText": "Синхронізуйте свою конфігурацію з Cloudflare Workers для віддаленого доступу із зашифрованими обліковими даними та автоматичним відновленням після відмови.",
"providersAcrossConnectionTypes": "{count} постачальників у трьох типах підключення.",
"manageProviders": "Керувати постачальниками",
"providersCount": "{count} постачальників",
"providerTypeFree": "Вільний рівень",
"providerTypeOAuth": "OAuth",
"providerTypeApiKey": "Ключ API",
"useCaseSingleEndpointTitle": "Єдина кінцева точка для багатьох постачальників",
"useCaseSingleEndpointText": "Направляйте клієнтам одну базову URL-адресу та маршрут за префіксом моделі (наприклад: gh/, cc/, kr/, openai/).",
"useCaseFallbackTitle": "Відкат і перемикання моделей за допомогою комбо",
"useCaseFallbackText": "Створюйте комбіновані моделі на інформаційній панелі та зберігайте конфігурацію клієнта стабільною, поки постачальники змінюють внутрішню ротацію.",
"useCaseUsageVisibilityTitle": "Використання, вартість і видимість налагодження",
"useCaseUsageVisibilityText": "Відстежуйте токени та вартість за постачальником, обліковим записом і ключем API на вкладках «Використання» та «Аналітика».",
"clientCherryStudioTitle": "Вишнева студія",
"baseUrlLabel": "Базовий URL",
"chatEndpointLabel": "Кінцева точка чату",
"modelRecommendationLabel": "Рекомендована модель: явний префікс",
"clientCodexTitle": "Моделі Codex / GitHub Copilot",
"clientCodexBullet1": "Використовуйте ідентифікатори моделі з",
"clientCodexBullet2": "Моделі сімейства Codex авто-маршрут до",
"clientCodexBullet3": "Моделі, що не належать до Codex, продовжуються",
"clientCursorTitle": "Курсор IDE",
"clientCursorBullet1": "використання",
"clientCursorBullet1Suffix": "префікс для моделей Cursor.",
"clientCursorBullet2": "Підключення OAuth - вхід зі сторінки постачальників.",
"clientClaudeTitle": "Клод Код / Антигравітація",
"clientClaudeBullet1Prefix": "використання",
"clientClaudeBullet1Middle": "(Клод) або",
"clientClaudeBullet1Suffix": "(Антигравітація) префікс.",
"protocolsTitle": "Protocols: MCP & A2A",
"protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
"protocolMcpTitle": "MCP (Model Context Protocol)",
"protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
"protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
"protocolMcpStep2": "Point your MCP client to stdio transport.",
"protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
"protocolA2aTitle": "A2A (Agent2Agent)",
"protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
"protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
"protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
"protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
"protocolTroubleshootingTitle": "Protocol Troubleshooting",
"protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
"protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
"protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
"endpointChatNote": "Кінцева точка чату, сумісна з OpenAI (за замовчуванням).",
"endpointResponsesNote": "Кінцева точка API відповідей (Codex, o-series).",
"endpointModelsNote": "Каталог моделей для всіх підключених провайдерів.",
"endpointAudioNote": "Транскрипція аудіо (Deepgram, AssemblyAI).",
"endpointImagesNote": "Генерація зображення (NanoBanana).",
"endpointRewriteChatNote": "Помічник перезапису для клієнтів без /v1.",
"endpointRewriteResponsesNote": "Переписати помічник для відповідей без /v1.",
"endpointRewriteModelsNote": "Переписати помічник для виявлення моделі без /v1.",
"modelPrefixesDescriptionStart": "Використовуйте префікс постачальника перед назвою моделі, щоб маршрутизувати до певного постачальника. приклад:",
"modelPrefixesDescriptionEnd": "маршрути до GitHub Copilot.",
"provider": "Провайдер",
"type": "Тип",
"troubleshootingModelRouting": "Якщо клієнту не вдається виконати модель маршрутизації, використовуйте явний постачальник/модель (наприклад: gh/gpt-5.1-codex).",
"troubleshootingAmbiguousModels": "Якщо ви отримуєте неоднозначні помилки моделі, виберіть префікс постачальника замість простого ідентифікатора моделі.",
"troubleshootingCodexFamily": "Для моделей сімейства GitHub Codex збережіть модель як gh/codex-model; маршрутизатор вибирає /відповідає автоматично.",
"troubleshootingTestConnection": "Перед тестуванням із IDE або зовнішніх клієнтів скористайтеся інструментальною панеллю > Постачальники > Перевірити з’єднання.",
"troubleshootingCircuitBreaker": "Якщо постачальник показує, що автоматичний вимикач розімкнуто, дочекайтеся охолодження або подробиці перевірте на сторінці «Стан».",
"troubleshootingOAuth": "Для постачальників OAuth повторна автентифікація, якщо термін дії маркерів закінчився. Перевірте індикатор стану картки провайдера.",
"managementApiReference": "Management API Reference",
"managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
"mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
"mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
"mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
"mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
"mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
"mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
"mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments."
},
"legal": {
"privacyPolicy": "Політика конфіденційності",
"termsOfService": "Умови обслуговування",
"providerConfigurations": "Конфігурації провайдера",
"apiKeys": "Ключі API",
"usageLogs": "Журнали використання",
"applicationSettings": "Налаштування програми",
"viewExportAnalytics": "Перегляд і експорт аналітики використання",
"clearHistory": "Очистити історію використання в будь-який час",
"configureRetention": "Налаштувати політики збереження журналів",
"backupRestore": "Резервне копіювання та відновлення бази даних",
"privacyMetadataTitle": "Політика конфіденційності | OmniRoute",
"privacyMetadataDescription": "Політика конфіденційності для проксі-маршрутизатора OmniRoute AI API.",
"termsMetadataTitle": "Умови надання послуг | OmniRoute",
"termsMetadataDescription": "Умови використання проксі-маршрутизатора OmniRoute AI API.",
"backToHome": "Назад додому",
"lastUpdated": "Останнє оновлення: {date}",
"policyLastUpdatedDate": "13 лютого 2026 р",
"listSeparator": "-",
"questionsVisit": "Запитання? Відвідайте наш",
"githubRepository": "Репозиторій GitHub",
"privacySection1Title": "1. Місцева архітектура",
"privacySection1Text": "OmniRoute створено як локальну програму. Уся обробка та зберігання даних відбувається повністю на вашій машині. Немає централізованого сервера, який би збирав вашу інформацію.",
"privacySection2Title": "2. Дані, які ми зберігаємо",
"privacyDataStoredIn": "Наступні дані зберігаються локально в",
"privacyDataProviderConfigurationsDesc": "URL-адреси підключення, типи провайдерів і налаштування пріоритету",
"privacyDataApiKeysDesc": "зашифровані та зберігаються локально для автентифікації в постачальників AI",
"privacyDataUsageLogsDesc": "кількість запитів, використання маркерів, назви моделей, мітки часу та час відповіді",
"privacyDataApplicationSettingsDesc": "параметри теми, стратегію маршрутизації та комбіновані конфігурації",
"privacySection3Title": "3. Відсутність телеметрії",
"privacySection3Text": "OmniRoute не збирає дані телеметрії, аналітику чи звіти про збої. Жодні дані не надсилаються ні нам, ні будь-якій третій стороні. Ваші моделі використання, виклики API та конфігурації залишаються повністю приватними.",
"privacySection4Title": "4. Сторонні постачальники штучного інтелекту",
"privacySection4Text": "Коли ви здійснюєте виклики API через OmniRoute, ваші запити пересилаються до налаштованих вами постачальників штучного інтелекту (наприклад: OpenAI, Anthropic, Google). Ці постачальники мають власні політики конфіденційності, які визначають, як вони обробляють ваші дані. Будь ласка, перегляньте:",
"privacyOpenAiPolicy": "Політика конфіденційності OpenAI",
"privacyAnthropicPolicy": "Політика конфіденційності Anthropic",
"privacyGooglePolicy": "Політика конфіденційності Google",
"privacySection5Title": "5. Хмарна синхронізація (необов’язково)",
"privacySection5Text": "Якщо ви ввімкнете додаткову функцію хмарної синхронізації, конфігурації постачальника та ключі API можуть передаватися на налаштовану кінцеву точку хмари. Ця функція вимкнена за замовчуванням і вимагає явної згоди.",
"privacySection6Title": "6. Заготівля лісу",
"privacyLoggingIntro": "Журнали запитів можна налаштувати в налаштуваннях інформаційної панелі. Ви можете:",
"privacySection7Title": "7. Ваші права",
"privacySection7TextStart": "Оскільки всі дані зберігаються локально, ви маєте повний контроль. Ви можете будь-коли видалити свої дані, видаливши",
"privacySection7TextEnd": "каталогу або за допомогою функцій резервного копіювання та відновлення бази даних на інформаційній панелі.",
"termsSection1Title": "1. Огляд",
"termsSection1Text": "OmniRoute — це локальний проксі-маршрутизатор API API, який повністю працює на вашому комп’ютері. Він направляє запити до кількох постачальників штучного інтелекту за допомогою балансування навантаження, відновлення після відмови та відстеження використання.",
"termsSection2Title": "2. Обов'язки користувача",
"termsResponsibilityApiKeys": "Ви несете повну відповідальність за керування власними ключами API та обліковими даними для сторонніх постачальників штучного інтелекту (OpenAI, Anthropic, Google тощо).",
"termsResponsibilityCompliance": "Ви повинні дотримуватися умов обслуговування кожного постачальника штучного інтелекту, до API якого ви отримуєте доступ через OmniRoute.",
"termsResponsibilitySecurity": "Ви несете відповідальність за безпеку локальної інсталяції OmniRoute, включаючи встановлення пароля та обмеження доступу до мережі.",
"termsSection3Title": "3. Як це працює",
"termsSection3Text": "OmniRoute діє як проксі-сервер-посередник. Виклики API, надіслані до OmniRoute, перекладаються та пересилаються вашим налаштованим постачальникам AI. OmniRoute не змінює вміст ваших запитів або відповідей крім необхідного перекладу протоколу.",
"termsSection4Title": "4. Обробка даних",
"termsDataStoredLocally": "Усі дані зберігаються локально на вашій машині в базі даних SQLite.",
"termsNoTransmission": "OmniRoute не передає жодних даних на зовнішні сервери, якщо ви явно не активуєте функції хмарної синхронізації.",
"termsDataLocationText": "Журнали використання, ключі API та конфігурація зберігаються в",
"termsSection5Title": "5. Відмова від відповідальності",
"termsSection5Text": "OmniRoute надається «як є» без будь-яких гарантій. Ми не несемо відповідальності за будь-які витрати, пов’язані з використанням API, перебоями в роботі служби або втратою даних. Завжди створюйте резервні копії вашої конфігурації.",
"termsSection6Title": "6. Відкритий код",
"termsSection6Text": "OmniRoute — це програмне забезпечення з відкритим кодом. Ви можете вільно перевіряти, змінювати та поширювати його відповідно до умов його ліцензії."
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
"tabApiEndpoints": "API Endpoints",
"apiEndpointsTitle": "API Endpoints",
"apiEndpointsDescription": "Backend API endpoints that can be consumed by other applications and services. This section will list all available REST APIs with documentation and testing capabilities.",
"comingSoon": "Coming Soon",
"plannedFeatures": "Planned Features",
"featureRestApi": "REST API endpoint catalog with interactive documentation",
"featureWebhooks": "Webhook configuration and event subscriptions",
"featureSwagger": "OpenAPI / Swagger spec auto-generation",
"featureAuth": "API key and OAuth scope management per endpoint"
},
"agents": {
"title": "CLI Agents",
"description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
"refresh": "Refresh",
"installed": "Installed",
"notFound": "Not Found",
"builtIn": "Built-in",
"custom": "Custom",
"remove": "Remove",
"addCustomAgent": "Add Custom Agent",
"addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
"agentName": "Agent Name",
"binaryName": "Binary Name",
"versionCommand": "Version Command",
"spawnArgs": "Spawn Args",
"addAgent": "Add Agent",
"scanning": "Scanning system for CLI agents...",
"opencodeIntegration": "OpenCode Integration",
"opencodeDetected": "opencode {version} detected",
"opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
"downloadConfig": "Download {file}",
"downloaded": "Downloaded!",
"setupGuideTitle": "Setup guide",
"openCliTools": "Open CLI Tools",
"setupGuideDetectCliTitle": "Detect installed CLIs",
"setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
"setupGuideCustomAgentTitle": "Register custom binary",
"setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
"setupGuideCommandMissingTitle": "Fix 'command not found'",
"setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh."
},
"autoCombo": {
"title": "Auto-Combo Engine",
"statusNormal": "Normal",
"statusIncident": "Incident Mode",
"modePack": "Mode Pack",
"providerScores": "Provider Scores",
"noAutoCombo": "No auto-combo configured.",
"excludedProviders": "Excluded Providers",
"noExclusions": "No providers currently excluded.",
"factorQuota": "Quota",
"factorHealth": "Health",
"factorCost": "Cost",
"factorLatency": "Latency",
"factorTaskFit": "Task Fit",
"factorStability": "Stability",
"factorTierPriority": "Tier Priority",
"factorTierPriorityDesc": "Prefers accounts with higher quota tiers (Ultra/Pro over Free)",
"scoreFactorBreakdown": "Scoring Factors",
"modePackShipFast": "Ship Fast",
"modePackCostSaver": "Cost Saver",
"modePackQualityFirst": "Quality First",
"modePackOfflineFriendly": "Offline Friendly"
},
"search": {
"searchQuery": "Search Query",
"searchResults": "Search Results",
"cachedResult": "Cached",
"searchCost": "Cost",
"searchTools": "Search Tools",
"searchToolsDesc": "Advanced search testing with provider comparison",
"compareProviders": "Compare Providers",
"rerankResults": "Rerank Results",
"searchHistory": "Search History",
"urlOverlap": "URL Overlap",
"noSearchProviders": "No search providers configured. Add providers in Settings.",
"noRerankModels": "No rerank model available",
"webSearch": "Web Search",
"provider": "Provider",
"searchType": "Search Type",
"maxResults": "Max Results",
"filters": "Filters",
"country": "Country",
"language": "Language",
"timeRange": "Time Range",
"includeDomains": "Include Domains",
"excludeDomains": "Exclude Domains",
"safeSearch": "Safe Search",
"formatted": "Formatted",
"rawJson": "JSON",
"cacheMiss": "cache miss",
"cacheHit": "cache hit",
"latency": "Latency",
"cost": "Cost",
"results": "Results",
"rerank": "Rerank",
"rerankModel": "Rerank Model",
"positionDelta": "Position Change",
"emptyState": "Send a search query to see results",
"safeSearchOff": "Off",
"safeSearchModerate": "Moderate",
"safeSearchStrict": "Strict",
"queryPlaceholder": "Enter search query...",
"providerAuto": "auto (cheapest)",
"searchTypeWeb": "web",
"searchTypeNews": "news",
"optionAny": "any",
"timeRangeDay": "Past day",
"timeRangeWeek": "Past week",
"timeRangeMonth": "Past month",
"timeRangeYear": "Past year",
"domainPlaceholder": "example.com",
"requestTimedOut": "Request timed out ({seconds}s)",
"networkError": "Network error"
}
}