mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-04-28 06:19:46 +00:00
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
2693 lines
194 KiB
JSON
2693 lines
194 KiB
JSON
{
|
||
"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": "Теми",
|
||
"presetColors": "Популярни цветове",
|
||
"createTheme": "Създай нова тема",
|
||
"chooseColor": "Изберете един цвят",
|
||
"themeCoral": "КоралName",
|
||
"themeBlue": "Сини",
|
||
"themeRed": "Червен",
|
||
"themeGreen": "Зелено",
|
||
"themeViolet": "Виолетово",
|
||
"themeOrange": "Оранжево",
|
||
"themeCyan": "Циан",
|
||
"endpoints": "Крайни точки",
|
||
"playground": "Площадка",
|
||
"agents": "Агенти",
|
||
"cliToolsShort": "Инструменти",
|
||
"autoCombo": "Auto Combo",
|
||
"searchTools": "Search Tools"
|
||
},
|
||
"themesPage": {
|
||
"title": "Теми",
|
||
"description": "Изберете предварително зададена тема или създайте своя собствена с един цвят",
|
||
"presetColors": "Популярни цветове",
|
||
"customTheme": "Персонализирана тема",
|
||
"customThemeDesc": "Щракнете върху създаване на тема и изберете един цвят",
|
||
"createTheme": "Създай нова тема",
|
||
"activePreset": "Активна тема"
|
||
},
|
||
"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": "Медия",
|
||
"mediaDescription": "Генериране на изображения, видеоклипове и музика",
|
||
"themes": "Теми",
|
||
"themesDescription": "Изберете цветова тема за целия панел на таблото",
|
||
"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": "Невалиден ID на ключа",
|
||
"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": "По поръчка",
|
||
"unknown": "неизвестен",
|
||
"lastSavedAt": "Последно запазено: {date}",
|
||
"never": "Никога",
|
||
"justNow": "точно сега",
|
||
"minutesAgoShort": "преди {count}мин",
|
||
"hoursAgoShort": "преди {count}ч",
|
||
"daysAgoShort": "преди {count}d",
|
||
"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": "Antigravity изпраща заявки до крайната точка на Google. MITM ги прихваща и пренасочва към OmniRoute.",
|
||
"antigravityStep1": "1. Стартирайте MITM, за да маршрутизирате заявки през OmniRoute.",
|
||
"antigravityStep2Prefix": "2. Добавете",
|
||
"antigravityStep2Suffix": "към вашия хост файл като 127.0.0.1.",
|
||
"antigravityStep3": "3. Отворете Antigravity и заявките ще бъдат проксиирани.",
|
||
"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": "Фабричен Droid - Ръчна конфигурация",
|
||
"openClawManualConfiguration": "Open Claw - Ръчна конфигурация",
|
||
"clineManualConfiguration": "Ръчна конфигурация на Cline",
|
||
"kiloManualConfiguration": "Ръчна конфигурация на Kilo Code",
|
||
"toolDescriptions": {
|
||
"antigravity": "Google Antigravity IDE с MITM",
|
||
"claude": "Антропен код на Клод CLI",
|
||
"codex": "OpenAI Codex CLI",
|
||
"droid": "Фабричен Droid AI Assistant",
|
||
"openclaw": "Open Claw AI Assistant",
|
||
"cline": "Cline AI Coding Assistant CLI",
|
||
"kilo": "Kilo Code AI Assistant CLI",
|
||
"cursor": "Cursor AI Code Editor",
|
||
"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": "Активирайте опцията „OpenAI API ключ“."
|
||
},
|
||
"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": "Използвайте, когато изпълнявате 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": "Изчакване (ms)",
|
||
"healthcheck": "Здравна проверка",
|
||
"priority": "Приоритет",
|
||
"fallback": "Резервен вариант",
|
||
"roundRobin": "Round Robin",
|
||
"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": "Забавяне при повторен опит (ms)",
|
||
"concurrencyPerModel": "Паралелност / Модел",
|
||
"queueTimeout": "Време за изчакване на опашката (ms)",
|
||
"advancedHint": "Оставете празно, за да използвате глобалните настройки по подразбиране. Те заменят настройките за всеки доставчик.",
|
||
"moveUp": "Придвижете се нагоре",
|
||
"moveDown": "Придвижете се надолу",
|
||
"removeModel": "Премахнете",
|
||
"saving": "Запазва се...",
|
||
"weighted": "Претеглени",
|
||
"leastUsed": "Най-малко използван",
|
||
"costOpt": "Cost-Opt",
|
||
"strategyGuideTitle": "Как да използвате тази стратегия",
|
||
"strategyGuideWhen": "Кога да използва!",
|
||
"strategyGuideAvoid": "Избягвайте кога",
|
||
"strategyGuideExample": "Пример",
|
||
"strategyGuide": {
|
||
"priority": {
|
||
"when": "Имате един предпочитан модел и искате резервен вариант само при неуспех.",
|
||
"avoid": "Нуждаете се от разпределение на заявките между моделите.",
|
||
"example": "Основен модел на кодиране с по - евтино резервно копие за прекъсвания."
|
||
},
|
||
"weighted": {
|
||
"when": "Нуждаете се от контролиран трафик, разпределен между моделите.",
|
||
"avoid": "Не можете да поддържате точни тегла във времето.",
|
||
"example": "80% стабилен модел + 20% внедряване на канарския модел."
|
||
},
|
||
"round-robin": {
|
||
"when": "Искате предвидимо и равномерно разпределение.",
|
||
"avoid": "Моделите се различават твърде много по латентност или цена.",
|
||
"example": "Един и същ модел на няколко акаунта за разпределяне на производителността."
|
||
},
|
||
"random": {
|
||
"when": "Искате просто разпределение с минимална настройка.",
|
||
"avoid": "Трябват ви строги гаранции за движение по пътищата.",
|
||
"example": "Бързо прототипиране с еквивалентни модели."
|
||
},
|
||
"least-used": {
|
||
"when": "Искате адаптивно балансиране въз основа на търсенето в реално време.",
|
||
"avoid": "Трафикът е твърде нисък, за да се възползвате от балансиране на използването.",
|
||
"example": "Смесени натоварвания, при които един модел често се претоварва."
|
||
},
|
||
"cost-optimized": {
|
||
"when": "Намаляването на разходите е вашият основен приоритет.",
|
||
"avoid": "Ценовите данни липсват или са остарели.",
|
||
"example": "Задачи на заден фон или партида, при които се предпочитат по - ниски разходи."
|
||
}
|
||
},
|
||
"advancedHelp": {
|
||
"maxRetries": "Колко повторни опита се правят, преди заявката да бъде неуспешна.",
|
||
"retryDelay": "Първоначално изчакване между опитите. По - високите стойности намаляват налягането на разрушаване.",
|
||
"timeout": "Максимална продължителност на заявката преди прекъсване.",
|
||
"healthcheck": "Пропуска нездравословни модели/доставчици от решенията за маршрутизиране.",
|
||
"concurrencyPerModel": "Позволени са максимум едновременни заявки за модел в кръгъл робин.",
|
||
"queueTimeout": "Колко дълго може да чака заявката на опашката, преди да изтече времето."
|
||
},
|
||
"templatesTitle": "Бързи шаблони",
|
||
"templatesDescription": "Приложете стартов профил, след това регулирайте моделите и конфигурирайте.",
|
||
"templateApply": "Прилагане на шаблон...",
|
||
"templateHighAvailability": "Висока заетост",
|
||
"templateHighAvailabilityDesc": "Приоритетно маршрутизиране със здравни проверки и безопасни повторни опити.",
|
||
"templateCostSaver": "Пестене на разходи",
|
||
"templateCostSaverDesc": "Оптимизирано по отношение на разходите маршрутизиране за първостепенни за бюджета натоварвания.",
|
||
"templateBalanced": "симетрично натоварване",
|
||
"templateBalancedDesc": "Най - малко използвано маршрутизиране за разпространение на търсенето с течение на времето.",
|
||
"usageGuideHide": "Скриване на шаблона",
|
||
"usageGuideDontShowAgain": "Не показвай това отново",
|
||
"usageGuideShow": "Показване на ръководството",
|
||
"quickTestTitle": "Комбо готов за валидиране",
|
||
"quickTestDescription": "Извършете тест сега, за да потвърдите поведението на резервите и латентността.",
|
||
"testNow": "Тествайте сега",
|
||
"pricingCoverage": "Покритие на цените",
|
||
"pricingCoverageHint": "Оптимизирането на разходите работи най - добре, когато всички комбинирани модели имат ценообразуване.",
|
||
"pricingAvailable": "Налично ценообразуване",
|
||
"pricingMissing": "Без ценообразуване",
|
||
"pricingAvailableShort": "цени",
|
||
"pricingMissingShort": "без цена",
|
||
"warningRoundRobinSingleModel": "Round - robin е най - полезен с поне 2 модела.",
|
||
"warningCostOptimizedPartialPricing": "Само {priced} от {total} моделите имат ценообразуване. Маршрутизирането може да бъде частично съобразено с разходите.",
|
||
"warningCostOptimizedNoPricing": "Няма намерени данни за ценообразуване за тази комбинация. Оптимизираният по отношение на разходите маршрут може да е неочакван.",
|
||
"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": "Използване на облачен прокси",
|
||
"usingLocalServer": "Използване на локален сървър",
|
||
"machineId": "ID на машината: {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": "Активиране на облачен прокси",
|
||
"whatYouGet": "Какво ще получите",
|
||
"cloudBenefitAccess": "Достъп до вашия API от всяка точка на света",
|
||
"cloudBenefitShare": "Лесно споделяйте крайна точка с вашия екип",
|
||
"cloudBenefitPorts": "Няма нужда да отваряте портове или да конфигурирате защитна стена",
|
||
"cloudBenefitEdge": "Бърза глобална крайна мрежа",
|
||
"cloudSessionNote": "Cloud ще запази сесията ви за удостоверяване за 1 ден. Ако не се използва, ще се изтрие автоматично.",
|
||
"cloudUnstableNote": "Cloud в момента е нестабилен с Claude Code OAuth в някои случаи.",
|
||
"cloudConnected": "Облачен прокси е свързан!",
|
||
"connectingToCloud": "Свързване с облак...",
|
||
"verifyingConnection": "Проверка на връзката...",
|
||
"connecting": "Свързване...",
|
||
"verifying": "Проверка...",
|
||
"connected": "Свързан!",
|
||
"disableCloudTitle": "Деактивирайте облачния прокси",
|
||
"disableWarning": "Всички сесии за удостоверяване ще бъдат изтрити от облака.",
|
||
"syncingData": "Синхронизиране на най-новите данни...",
|
||
"disablingCloud": "Деактивиране на облака...",
|
||
"syncing": "Синхронизиране...",
|
||
"disabling": "Деактивиране...",
|
||
"cloudConnectedVerified": "Облачен прокси свързан и проверен!",
|
||
"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": "Интеграционна повърхност",
|
||
"sectionDescription": "Съвместими с OpenAI API и крайни точки на оперативния протокол",
|
||
"tabApis": "API, съвместими с OpenAI",
|
||
"tabProtocols": "Протоколи",
|
||
"tabsAria": "Раздели на крайните точки",
|
||
"protocolsTitle": "Протоколи",
|
||
"protocolsDescription": "MCP и A2A са първокласни крайни точки със специална наблюдаемост и контроли.",
|
||
"mcpCardTitle": "MCP сървър",
|
||
"mcpCardDescription": "Модел Контекстен протокол през stdio",
|
||
"a2aCardTitle": "A2A сървър",
|
||
"a2aCardDescription": "Agent2Agent JSON - RPC крайна точка",
|
||
"protocolToolsLabel": "Инструменти",
|
||
"protocolTasksLabel": "Задачи",
|
||
"protocolActiveStreamsLabel": "Активни потоци",
|
||
"protocolLastActivity": "Последна активност",
|
||
"quickStart": "Button text: start playing a game",
|
||
"openMcpDashboard": "Отворено управление на MCP",
|
||
"openA2aDashboard": "Отворено управление на A2A",
|
||
"mcpQuickStartTitle": "Button text: start playing a game",
|
||
"mcpQuickStartStep1": "Стартирайте MCP сървъра чрез `omniroute --mcp`.",
|
||
"mcpQuickStartStep2": "Конфигурирайте MCP клиента си, за да се свързвате през stdio транспорт.",
|
||
"mcpQuickStartStep3": "Използвайте инструменти като @@ PH0 @@ и @@PH1 @@.",
|
||
"a2aQuickStartTitle": "Button text: start playing a game",
|
||
"a2aQuickStartStep1": "Открийте картата на агента на @@PH0 @@.",
|
||
"a2aQuickStartStep2": "Изпратете JSON - RPC заявки до@@ PH0 @@, като използвате @@ PH1 @@ или @@ PH2 @@.",
|
||
"a2aQuickStartStep3": "Проследяване и контрол на задачите с помощта на @@ PH0 @@ и @@ PH1 @@.",
|
||
"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": "Зареждане на таблото за управление на MCP...",
|
||
"activate": "активиране",
|
||
"deactivate": "деактивирай",
|
||
"confirmSwitchCombo": "Потвърждаване на@@ PH0@@ комбо „@@ PH1 @@“?",
|
||
"switchComboFailed": "Неуспешно превключване на състоянието на комбинацията.",
|
||
"switchComboSuccess": "Комбото „@@ PH0@@“ е актуализирано.",
|
||
"confirmApplyProfile": "Прилагане на профил за устойчивост „@@ PH0 @@“?",
|
||
"applyProfileFailed": "Неуспешно прилагане на профил на устойчивост.",
|
||
"applyProfileSuccess": "Приложен е профил „@@ PH0 @@“.",
|
||
"confirmResetBreakers": "Нулиране на всички прекъсвачи?",
|
||
"resetBreakersFailed": "Неуспешно нулиране на прекъсвачите.",
|
||
"resetBreakersSuccess": "Прекъсвачите се нулират.",
|
||
"processStatus": "Статус на процеса",
|
||
"online": "Онлайн",
|
||
"offline": "Извън линия",
|
||
"pid": "ПИДprocess heading",
|
||
"sessionUptime": "Продължителност на сесията",
|
||
"lastHeartbeat": "Последен сърдечен ритъм",
|
||
"activity24h": "Дейност (24 часа)",
|
||
"totalCalls": "Общо повиквания",
|
||
"successRate": "Ниво на успех* %",
|
||
"avgLatency": "Ср. латентност",
|
||
"topTools": "Топ инструменти",
|
||
"noToolCalls24h": "Няма повиквания от инструмента през последните 24 часа.",
|
||
"runtimeDetails": "Подробности за времето на изпълнение",
|
||
"transport": "Транспорт",
|
||
"scopesEnforced": "Приложени обхвати",
|
||
"yes": "да",
|
||
"no": "не",
|
||
"lastCall": "ПОСЛЕДНО ПОВИКВАНЕ! ",
|
||
"heartbeatPath": "Пътека на сърдечния ритъм",
|
||
"operationalControls": "Оперативен контрол",
|
||
"switchCombo": "Превключване на комбинацията",
|
||
"inactive": "неактивни",
|
||
"active": "активен",
|
||
"activateCombo": "Активиране на комбинацията",
|
||
"deactivateCombo": "Деактивиране на комбинацията",
|
||
"applyResilienceProfile": "Прилагане на профил на устойчивост",
|
||
"profileAggressive": "агресивно",
|
||
"profileBalanced": "Балансиран",
|
||
"profileConservative": "консервативен",
|
||
"applyProfile": "Прилагане на профил",
|
||
"resetCircuitBreakers": "Нулиране на прекъсвачите",
|
||
"resetCircuitBreakersHelp": "Изчиства текущото състояние на прекъсвача и броячите на повреди за доставчиците.",
|
||
"resetAllBreakers": "Нулиране на всички прекъсвачи",
|
||
"toolsAndScopes": "Инструменти и прибори",
|
||
"tableTool": "Инструмент",
|
||
"tableScopes": "Обхват",
|
||
"tablePhase": "Фаза",
|
||
"tableAudit": "Одит",
|
||
"auditLog": "Архив",
|
||
"auditSummary": "Обаждания: @@ PH0 @@ | page {page} от {totalPages}",
|
||
"allTools": "Всички инструменти",
|
||
"allResults": "Всички резултати",
|
||
"success": "Готово",
|
||
"failure": "Грешка",
|
||
"apiKeyIdPlaceholder": "apiKeyId",
|
||
"loadingAuditEntries": "Зареждане на записи от одита...",
|
||
"noAuditEntriesForFilters": "Няма намерени записи за одит за текущите филтри.",
|
||
"tableTimestamp": "Времево клеймо",
|
||
"tableDuration": "Продължителност",
|
||
"tableResult": "Резултат",
|
||
"tableApiKey": "Ключ за API",
|
||
"failed": "неуспешно",
|
||
"previous": "Предишна",
|
||
"next": "Следващ"
|
||
},
|
||
"a2aDashboard": {
|
||
"loading": "Зареждане на таблото за управление на A2A...",
|
||
"confirmCancelTask": "Отмяна на задача @@PH0 @@?",
|
||
"cancelTaskFailed": "Неуспешно анулиране на задачата.",
|
||
"cancelTaskSuccess": "Задачата {taskId} е отменена.",
|
||
"smokeSendFailed": "неуспешен тест за дим на съобщение/изпращане.",
|
||
"smokeSendSuccessWithTask": "съобщение/изпращане ОК (задача@@ PH0 @@).",
|
||
"smokeSendSuccess": "съобщение/изпращане ОК.",
|
||
"smokeStreamFailed": "неуспешен тест за дим на съобщение/поток.",
|
||
"smokeStreamSuccessWithTask": "съобщение/поток ОК (задача {taskId}@@ PH1 @@).",
|
||
"smokeStreamNoTaskId": "съобщението/потока е завършено без идентификатор на задачата.",
|
||
"health": "Здраве",
|
||
"ok": "ОК",
|
||
"totalTasks": "Общо задачи",
|
||
"activeStreams": "Активни потоци",
|
||
"lastTask": "Последна задача",
|
||
"taskStateOverview": "Общ преглед на състоянието на задачата",
|
||
"state": {
|
||
"submitted": "Публикувано от",
|
||
"working": "Изправно",
|
||
"completed": "завършено",
|
||
"failed": "неуспешно",
|
||
"cancelled": "отказанa"
|
||
},
|
||
"agentCard": "Агентска карта",
|
||
"version": "Версия",
|
||
"url": "URL",
|
||
"capabilities": "Възможности",
|
||
"agentCardNotAvailable": "Картата на агента не е налична.",
|
||
"quickValidation": "Бързо валидиране",
|
||
"quickValidationDescription": "Изпълнява димни повиквания чрез крайната точка на живо@@ PH0 @@.",
|
||
"runMessageSend": "Стартиране на съобщение/изпращане",
|
||
"runMessageStream": "Стартиране на съобщение/поток",
|
||
"taskManagement": "Управление на задачи",
|
||
"taskSummary": "{total} задачи | страница {page} от {totalPages}",
|
||
"allStates": "всички",
|
||
"allSkills": "всички умения",
|
||
"loadingTasks": "Зареждане на задачите...",
|
||
"noTasksForFilters": "Не са намерени задачи за текущите филтри.",
|
||
"tableTask": "Задача",
|
||
"tableSkill": "Умение",
|
||
"tableState": "Държава",
|
||
"tableUpdated": "Обновенo на",
|
||
"tableActions": "Действия",
|
||
"view": "Виж",
|
||
"cancel": "Отказ",
|
||
"previous": "Предишна",
|
||
"next": "Следващ",
|
||
"taskDetail": "Подробности за задачата",
|
||
"close": "Затваряне",
|
||
"metadata": "Метаданни",
|
||
"events": "Събития",
|
||
"artifacts": "Артефакти"
|
||
},
|
||
"health": {
|
||
"title": "Здраве на системата",
|
||
"description": "Мониторинг в реално време на вашето копие OmniRoute",
|
||
"healthy": "Здрави",
|
||
"degraded": "Деградирал",
|
||
"down": "Надолу",
|
||
"uptime": "Работно време",
|
||
"memory": "памет",
|
||
"memoryRss": "Памет (RSS)",
|
||
"heap": "Купчина",
|
||
"cpu": "CPU",
|
||
"database": "База данни",
|
||
"version": "Версия",
|
||
"lastCheck": "Последна проверка",
|
||
"providerHealth": "Здраве на доставчика",
|
||
"systemMetrics": "Системни показатели",
|
||
"tokenHealth": "Токен Здраве",
|
||
"refreshAll": "Опресни всички",
|
||
"checkNow": "Проверете сега",
|
||
"loadingHealth": "Здравните данни се зареждат...",
|
||
"failedToLoad": "Неуспешно зареждане на здравни данни: {error}",
|
||
"retry": "Опитайте отново",
|
||
"allOperational": "Всички системи работят",
|
||
"issuesDetected": "Открити са системни проблеми",
|
||
"updatedAt": "Актуализиран {time}",
|
||
"latency": "Латентност",
|
||
"latencyP50": "p50",
|
||
"latencyP95": "стр. 95",
|
||
"latencyP99": "стр. 99",
|
||
"millisecondsShort": "{value}ms",
|
||
"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 прокси. Той насочва заявки към множество доставчици на AI с балансиране на натоварването, преход при срив и проследяване на използването.",
|
||
"multiProvider": "Мулти-доставчик",
|
||
"usageTracking": "Проследяване на използването",
|
||
"apiKeyMgmt": "API Key Mgmt",
|
||
"securityDesc": "Задайте парола, за да защитите таблото си за управление, или пропуснете засега.",
|
||
"providerDesc": "Свържете първия си доставчик на AI. Можете да добавите още по-късно.",
|
||
"apiKeyRequired": "API ключ (задължително)",
|
||
"customUrlOptional": "Персонализиран URL (по избор)",
|
||
"testDesc": "Нека проверим дали връзката ви с доставчика работи.",
|
||
"runTest": "Изпълнете тест за връзка",
|
||
"testingConnection": "Връзката се тества...",
|
||
"connectionSuccessful": "Връзката е успешна! Вашият доставчик е готов.",
|
||
"noProviderFound": "Няма намерен доставчик. Можете да добавите такъв от таблото за управление по-късно.",
|
||
"testFailed": "Тестът е неуспешен, но можете да конфигурирате това по-късно.",
|
||
"couldNotTest": "Не може да се тества в момента. Можете да тествате от таблото.",
|
||
"doneDesc": "Всичко е готово! Вашето копие на OmniRoute е конфигурирано и готово за прокси заявки за AI.",
|
||
"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 Key Съвместими доставчици",
|
||
"testAll": "Тествайте всички",
|
||
"testAllOAuth": "Тествайте всички OAuth връзки",
|
||
"testAllFree": "Тествайте всички безплатни връзки",
|
||
"testAllApiKey": "Тествайте всички API Key връзки",
|
||
"testAllCompatible": "Тествайте всички съвместими връзки",
|
||
"connected": "{count} Свързан",
|
||
"errorCount": "{count} Грешка ({code})",
|
||
"errorCountNoCode": "{count} Грешка",
|
||
"noConnections": "Никакви връзки",
|
||
"disabled": "Забранено",
|
||
"enableProvider": "Активиране на доставчика",
|
||
"disableProvider": "Деактивиране на доставчика",
|
||
"testResults": "Резултати от теста",
|
||
"noCompatibleYet": "Все още няма добавени съвместими доставчици",
|
||
"compatibleHint": "Използвайте бутоните по-горе, за да добавите крайни точки, съвместими с OpenAI или Anthropic",
|
||
"addOpenAICompatible": "Добавете OpenAI съвместим",
|
||
"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": "напр. API за производство, среда за разработка",
|
||
"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}ms",
|
||
"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": "Подробности за антропна съвместимост",
|
||
"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 endpoint.",
|
||
"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": "Upstream auth",
|
||
"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": "клод-3-опус-20240229",
|
||
"openaiCompatibleModelPlaceholder": "gpt-4o",
|
||
"apiKeyValidationFailed": "Проверката на API ключа е неуспешна. Моля, проверете ключа си и опитайте отново.",
|
||
"addProviderApiKeyTitle": "Добавяне на {provider} API ключ",
|
||
"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": "Изчакване (ms)",
|
||
"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": "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": "По поръчка",
|
||
"customDesc": "Задайте фиксиран бюджет за токени за всички заявки",
|
||
"adaptive": "Адаптивна",
|
||
"adaptiveDesc": "Мащабирайте бюджет въз основа на сложността на заявката",
|
||
"effortNone": "Няма (0 токена)",
|
||
"effortLow": "Нисък (1K токена)",
|
||
"effortMedium": "Среден (10K токена)",
|
||
"effortHigh": "Висок (128K токена)",
|
||
"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": "Когато е ВКЛЮЧЕНО, крайната точка /v1/models връща 404 за неупълномощени заявки. Предотвратява откриването на модел от неоторизирани потребители.",
|
||
"blockedProviders": "Блокирани доставчици",
|
||
"blockedProvidersDesc": "Скриване на конкретни доставчици от отговора /v1/models. Блокираните доставчици няма да се показват в списъците с модели.",
|
||
"providersBlocked": "{count} доставчик(и) е блокиран от /models",
|
||
"blockProviderTitle": "Блокиране на {provider}",
|
||
"unblockProviderTitle": "Отблокиране на {provider}",
|
||
"routingStrategy": "Стратегия за маршрутизиране",
|
||
"fillFirst": "Първо попълнете",
|
||
"fillFirstDesc": "Използвайте акаунти в приоритетен ред",
|
||
"roundRobin": "Round Robin",
|
||
"roundRobinDesc": "Преминете през всички сметки",
|
||
"p2c": "P2C",
|
||
"p2cDesc": "Изберете 2 произволни, използвайте по-здравословния",
|
||
"random": "Случаен",
|
||
"randomDesc": "Произволен акаунт за всяка заявка",
|
||
"leastUsed": "Най-малко използван",
|
||
"leastUsedDesc": "Изберете най-малко използван акаунт",
|
||
"costOpt": "Цена Опт",
|
||
"costOptDesc": "Предпочитайте най-евтиния наличен акаунт",
|
||
"strictRandom": "Strict Random",
|
||
"strictRandomDesc": "Shuffle deck — uses each account once before reshuffling",
|
||
"stickyLimit": "Лепкава граница",
|
||
"stickyLimitDesc": "Обаждания на акаунт преди превключване",
|
||
"modelAliases": "Псевдоними на модела",
|
||
"modelAliasesTitle": "Псевдоними на модели",
|
||
"modelAliasesDesc": "Шаблони за заместващи символи за пренасочване на имена на модели • Използвайте * и ?",
|
||
"addCustomAlias": "Добави потребителски псевдоним",
|
||
"deprecatedModelId": "Остарял ID на модел",
|
||
"newModelId": "Нов ID на модел",
|
||
"customAliases": "Потребителски псевдоними",
|
||
"builtInAliases": "Вградени псевдоними",
|
||
"backgroundDegradationTitle": "Деградация на фонови задачи",
|
||
"backgroundDegradationDesc": "Автоматично открива фонови задачи (заглавия, резюмета) и пренасочва към по-евтини модели",
|
||
"enableDegradation": "Активирай деградация на фонови задачи",
|
||
"enableDegradationHint": "Когато е активирано, фоновите задачи като генериране на заглавия и резюмета се пренасочват автоматично към по-евтини модели",
|
||
"tasksDetected": "Открити задачи",
|
||
"degradationMap": "Карта на деградация на модели",
|
||
"premiumModel": "Премиум модел",
|
||
"cheapModel": "Евтин модел",
|
||
"detectionPatterns": "Модели за откриване",
|
||
"newPattern": "напр. \"генерирай заглавие\"",
|
||
"aliasPatternPlaceholder": "клод-сонет-*",
|
||
"aliasTargetPlaceholder": "клод-сонет-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}m",
|
||
"auditLog": "Дневник за одит",
|
||
"searchAuditLogs": "Търсене в журналите за проверка...",
|
||
"failedLoadAuditLog": "Неуспешно зареждане на журнала за проверка",
|
||
"noAuditEvents": "Няма намерени одитни събития",
|
||
"action": "Действие",
|
||
"actor": "актьор",
|
||
"details": "Подробности",
|
||
"time": "време",
|
||
"fallbackChainsTitle": "Резервни вериги",
|
||
"fallbackChainsDesc": "Определете резервна поръчка на доставчика за модел",
|
||
"addChain": "+ Добавяне на верига",
|
||
"modelName": "Име на модела",
|
||
"modelNamePlaceholder": "клод-сонет-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": "Забавяне при повторен опит (ms)",
|
||
"timeoutLabel": "Изчакване (ms)",
|
||
"healthCheck": "Здравна проверка",
|
||
"healthCheckDesc": "Проверете предварително наличността на доставчика",
|
||
"trackMetrics": "Проследяване на показатели",
|
||
"trackMetricsDesc": "Записвайте показатели за комбо заявка",
|
||
"providerOverrides": "Замени на доставчика",
|
||
"providerOverridesDesc": "Замяна на времето за изчакване и повторни опити за всеки доставчик. Настройките на доставчика заменят глобалните настройки по подразбиране.",
|
||
"providerMaxRetriesAria": "{provider} макс. повторни опити",
|
||
"providerTimeoutAria": "{provider} таймаут мс",
|
||
"removeProviderOverrideAria": "Премахнете замяната на {provider}",
|
||
"newProviderNamePlaceholder": "напр. гугъл, отвори...",
|
||
"newProviderNameAria": "Ново име на доставчика",
|
||
"retries": "повторни опити",
|
||
"ms": "г-жа",
|
||
"saveComboDefaults": "Запазване на настройките по подразбиране на комбинацията",
|
||
"maxNestingDepth": "Максимална дълбочина на влагане",
|
||
"concurrencyPerModel": "Паралелност / Модел",
|
||
"queueTimeout": "Време за изчакване на опашката (ms)",
|
||
"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}d",
|
||
"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": "Цена = (вход × инпут_скорост) + (изход × изходна_скорост) + (кеширана × кеширана_скорост) на милион токени.",
|
||
"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}ms",
|
||
"notAvailableSymbol": "—",
|
||
"liveAutoRefreshing": "На живо — Автоматично опресняване",
|
||
"paused": "На пауза",
|
||
"eventsAppearHint": "Събитията за превод се появяват тук, когато заявките преминават през OmniRoute. Използвайте някой от тези методи за генериране на събития:",
|
||
"chatTesterTab": "Раздел Тестер за чат",
|
||
"testBenchTab": "Раздел Test Bench",
|
||
"externalApiCalls": "Външни API извиквания",
|
||
"ideCliIntegrations": "IDE/CLI интеграции",
|
||
"inMemoryNote": "Забележка: Събитията се съхраняват в паметта и се нулират, когато сървърът се рестартира.",
|
||
"ok": "добре",
|
||
"errorShort": "ГРЕШКА",
|
||
"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 връща сортиран (arr)\n```",
|
||
"userFollowUp": "Сега го подредете в низходящ ред."
|
||
},
|
||
"thinking": {
|
||
"question": "Какъв е сборът на първите 100 прости числа?"
|
||
},
|
||
"systemPrompt": {
|
||
"systemInstruction": "Вие сте старши софтуерен инженер, специализиран в разпределени системи. Отговаряйте на въпроси сбито, като използвате най-добрите практики в индустрията. Винаги предоставяйте примери за код, когато е уместно. Форматирайте отговорите си, като използвате маркдаун.",
|
||
"question": "Как да внедря модел на прекъсвач?"
|
||
},
|
||
"streaming": {
|
||
"prompt": "Разкажете ми кратка история за робот, който се учи да рисува."
|
||
}
|
||
},
|
||
"openaiCompatibleLabel": "Съвместим с OpenAI",
|
||
"anthropicCompatibleLabel": "Антропно съвместим",
|
||
"noTemplateForFormat": "Няма шаблон за този формат",
|
||
"translationFailed": "Неуспешен превод: {error}",
|
||
"pipelineDebugger": "Дебъгер за тръбопровод",
|
||
"translationPipeline": "Тръбопровод за превод",
|
||
"pipelineVisualization": "Визуализация на тръбопровода",
|
||
"pipelineVisualizationHint": "Изпратете съобщение, за да видите как вашата заявка преминава през откриване → превод → обаждане на доставчик.",
|
||
"chatTesterDescription": "Изпращайте съобщения като специфичен клиентски формат и проверявайте всяка стъпка от конвейера за превод.",
|
||
"chatTesterFlow": "Клиентска заявка → Откриване на формат → Междинен OpenAI → Формат на доставчик → Отговор",
|
||
"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": "p50",
|
||
"latencyP95": "стр. 95",
|
||
"latencyP99": "стр. 99",
|
||
"promptCache": "Кеш на подканите",
|
||
"systemHealth": "Здраве на системата",
|
||
"entries": "Вписвания",
|
||
"activeCount": "{count} активен",
|
||
"openCircuitBreakersDetected": "Открити са отворени прекъсвачи",
|
||
"hitRate": "Процент на попадения",
|
||
"hitsMisses": "Попадения / пропуски",
|
||
"circuitBreakers": "Автоматични прекъсвачи",
|
||
"lockedIPs": "Заключени IP адреси",
|
||
"lockoutsAutoRefreshHint": "Заключвания на ограничение на скоростта за модел • Автоматично опресняване 10s",
|
||
"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...",
|
||
"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": "Проследява се чрез пръстов отпечатък на заявка • Автоматично опресняване 5s",
|
||
"session": "Сесия",
|
||
"age": "Възраст",
|
||
"requests": "Заявки",
|
||
"connection": "Връзка",
|
||
"durationMillisecondsShort": "{value}ms",
|
||
"durationSecondsShort": "{value}s",
|
||
"durationMinutesShort": "{value}m",
|
||
"durationHoursShort": "{value}ч",
|
||
"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": "Професионалист",
|
||
"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 прокси",
|
||
"unifiedAiApiProxy": "Unified AI API прокси",
|
||
"unifiedAiApiProxyDesc": "Насочвайте заявки към множество доставчици на AI през една крайна точка. Вградено балансиране на натоварването, преход при срив и проследяване на използването.",
|
||
"passwordNotEnabled": "Защитата с парола не е активирана",
|
||
"loading": "Зареждане...",
|
||
"invalidPassword": "Невалидна парола",
|
||
"errorOccurredRetry": "Възникна грешка. Моля, опитайте отново.",
|
||
"configureInstance": "Нека да конфигурираме вашето копие на OmniRoute",
|
||
"runOnboardingWizard": "Стартирайте съветника за включване, за да настроите паролата си и да свържете първия си доставчик на AI.",
|
||
"startOnboarding": "Започнете Onboarding",
|
||
"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": "v1.0 вече е на живо",
|
||
"oneEndpoint": "Една крайна точка за",
|
||
"allProviders": "Всички доставчици на AI",
|
||
"heroDescription": "AI крайна точка прокси с уеб табло за управление - JavaScript порт на CLIProxyAPI. Работи безпроблемно с Claude Code, OpenAI Codex, Cline, RooCode и други CLI инструменти.",
|
||
"getStarted": "Започнете",
|
||
"viewOnGithub": "Вижте в GitHub",
|
||
"powerfulFeatures": "Мощни функции",
|
||
"featuresSubtitle": "Всичко, от което се нуждаете, за да управлявате вашата AI инфраструктура на едно място, създадено за мащаб.",
|
||
"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, конфигурирайте вашите доставчици чрез уеб таблото за управление и започнете да маршрутизирате AI заявки.",
|
||
"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. Свържете, маршрутизирайте и управлявайте вашите AI доставчици с лекота.",
|
||
"copyright": "© {year} OmniRoute. Всички права запазени.",
|
||
"flowToolClaudeCode": "Клод Код",
|
||
"flowToolOpenAICodex": "OpenAI Codex",
|
||
"flowToolCline": "Клайн",
|
||
"flowToolCursor": "Курсор",
|
||
"flowProviderOpenAI": "OpenAI",
|
||
"flowProviderAnthropic": "Антропен",
|
||
"flowProviderGemini": "Близнаци",
|
||
"flowProviderGithubCopilot": "Копилот на GitHub",
|
||
"interactiveDiagram": "Интерактивна диаграма, видима на работния плот",
|
||
"ctaTitle": "Готови ли сте да опростите вашата AI инфраструктура?",
|
||
"ctaDescription": "Присъединете се към разработчици, които рационализират своите AI интеграции с OmniRoute. Отворен код и безплатен за стартиране.",
|
||
"startFree": "Започнете безплатно",
|
||
"readDocumentation": "Прочетете документацията"
|
||
},
|
||
"docs": {
|
||
"title": "Документация",
|
||
"quickStart": "Бърз старт",
|
||
"features": "Характеристики",
|
||
"supportedProviders": "Поддържани доставчици",
|
||
"supportedProvidersToc": "Доставчици",
|
||
"commonUseCases": "Обичайни случаи на употреба",
|
||
"clientCompatibility": "Съвместимост на клиента",
|
||
"protocolsToc": "Протоколи",
|
||
"apiReference": "Справка за API",
|
||
"method": "Метод",
|
||
"path": "Пътека",
|
||
"notes": "Бележки",
|
||
"modelPrefixes": "Префикси на модела",
|
||
"prefix": "Префикс",
|
||
"troubleshooting": "Отстраняване на неизправности",
|
||
"supportsChat": "Поддържа крайни точки както за чат, така и за отговори.",
|
||
"oauthAutoRefresh": "OAuth връзка с автоматично опресняване на токена.",
|
||
"fullStreaming": "Пълна поддръжка за стрийминг за всички модели.",
|
||
"docsLabel": "Документи",
|
||
"docsHeroDescription": "AI шлюз за 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+ доставчици на AI чрез една крайна точка, съвместима с OpenAI. Поддържа API за чат, отговори, аудио и изображения.",
|
||
"featureCombosTitle": "Комбинации и балансиране",
|
||
"featureCombosText": "Създавайте комбинации от модели с резервни вериги и стратегии за балансиране: кръгови, приоритетни, произволни, най-малко използвани и оптимизирани по отношение на разходите.",
|
||
"featureUsageTitle": "Проследяване на използването и разходите",
|
||
"featureUsageText": "Преброяване на токени в реално време, изчисляване на разходите за доставчик/модел и подробна разбивка на използването по API ключ и акаунт.",
|
||
"featureAnalyticsTitle": "Табло за анализ",
|
||
"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",
|
||
"clientCodexBullet1": "Използвайте идентификатори на модели с",
|
||
"clientCodexBullet2": "Автоматичен маршрут за моделите от семейство Codex",
|
||
"clientCodexBullet3": "Моделите извън Codex продължават",
|
||
"clientCursorTitle": "Курсор IDE",
|
||
"clientCursorBullet1": "Използвайте",
|
||
"clientCursorBullet1Suffix": "префикс за модели Cursor.",
|
||
"clientCursorBullet2": "OAuth връзка - влизане от страницата Доставчици.",
|
||
"clientClaudeTitle": "Клод Код / Антигравитация",
|
||
"clientClaudeBullet1Prefix": "Използвайте",
|
||
"clientClaudeBullet1Middle": "(Клод) или",
|
||
"clientClaudeBullet1Suffix": "(Антигравитация) префикс.",
|
||
"protocolsTitle": "Протоколи: MCP & A2A",
|
||
"protocolsDescription": "OmniRoute излага два оперативни протокола в допълнение към съвместимите с OpenAI API: MCP за изпълнение на инструменти и A2A за работни процеси от агент към агент.",
|
||
"protocolMcpTitle": "MCP (Model Context Protocol)",
|
||
"protocolMcpDesc": "Използвайте MCP през stdio, за да позволите на клиентите да открият и извикат OmniRoute инструменти с видимост на одита.",
|
||
"protocolMcpStep1": "Започнете MCP транспорт с @@PH0 @@.",
|
||
"protocolMcpStep2": "Насочете вашия MCP клиент към stdio Transport.",
|
||
"protocolMcpStep3": "Обадете се на @@ PH0 @@ и `omniroute_list_combos`, за да потвърдите връзката.",
|
||
"protocolA2aTitle": "A2A (Агент2Агент)",
|
||
"protocolA2aDesc": "Използвайте A2A JSON - RPC, за да изпращате задачи синхронно или чрез стрийминг на SSE.",
|
||
"protocolA2aStep1": "Прочетете `/.well-known/agent.json` за откриване на агент.",
|
||
"protocolA2aStep2": "Изпратете `message/send` или `message/stream` заявки на @@PH2 @@.",
|
||
"protocolA2aStep3": "Управлявайте жизнения цикъл на задачите с@@ PH0 @@ и @@ PH1 @@.",
|
||
"protocolTroubleshootingTitle": "Отстраняване на неизправности в протокола",
|
||
"protocolTroubleshooting1": "Ако MCP статусът е офлайн, проверете дали процесът STDIO работи и дали файлът със сърдечния ритъм се актуализира.",
|
||
"protocolTroubleshooting2": "Ако A2A задачите останат в `working`, проверете @@ PH1@@ и стриймвайте събития за състоянието на терминала.",
|
||
"protocolTroubleshooting3": "Използвайте `/dashboard/mcp` и @@ PH1@@ за оперативен контрол и видимост на одита.",
|
||
"endpointChatNote": "OpenAI-съвместима крайна точка за чат (по подразбиране).",
|
||
"endpointResponsesNote": "Крайна точка на API за отговори (Кодекс, o-серия).",
|
||
"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": "Ако получите двусмислени грешки в модела, изберете префикс на доставчик вместо гол ID на модела.",
|
||
"troubleshootingCodexFamily": "За модели от семейството на GitHub Codex, запазете модела като gh/codex-model; рутерът избира /отговаря автоматично.",
|
||
"troubleshootingTestConnection": "Използвайте Табло > Доставчици > Тестване на връзката, преди да тествате от IDE или външни клиенти.",
|
||
"troubleshootingCircuitBreaker": "Ако доставчикът покаже отворен прекъсвач, изчакайте охлаждането или проверете страницата Health за подробности.",
|
||
"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. Доставчици на AI трети страни",
|
||
"privacySection4Text": "Когато правите API извиквания чрез OmniRoute, вашите заявки се препращат към доставчиците на AI, които сте конфигурирали (например: OpenAI, Anthropic, Google). Тези доставчици имат свои собствени правила за поверителност, които управляват начина, по който обработват вашите данни. Моля, прегледайте:",
|
||
"privacyOpenAiPolicy": "Политика за поверителност на OpenAI",
|
||
"privacyAnthropicPolicy": "Правила за поверителност на Anthropic",
|
||
"privacyGooglePolicy": "Правила за поверителност на Google",
|
||
"privacySection5Title": "5. Облачно синхронизиране (по избор)",
|
||
"privacySection5Text": "Ако активирате незадължителната функция за синхронизиране в облака, конфигурациите на доставчика и API ключовете може да бъдат предадени към конфигурирана крайна точка в облака. Тази функция е деактивирана по подразбиране и изисква изрично включване.",
|
||
"privacySection6Title": "6. Сеч",
|
||
"privacyLoggingIntro": "Регистърите на заявките могат да бъдат конфигурирани чрез настройките на таблото за управление. Можете да:",
|
||
"privacySection7Title": "7. Вашите права",
|
||
"privacySection7TextStart": "Тъй като всички данни се съхраняват локално, вие имате пълен контрол. Можете да изтриете данните си по всяко време, като премахнете",
|
||
"privacySection7TextEnd": "директория или използване на функциите за архивиране и възстановяване на база данни в таблото за управление.",
|
||
"termsSection1Title": "1. Преглед",
|
||
"termsSection1Text": "OmniRoute е първи локален AI API прокси рутер, който работи изцяло на вашата машина. Той насочва заявки към множество доставчици на AI с балансиране на натоварването, преход при срив и проследяване на използването.",
|
||
"termsSection2Title": "2. Отговорности на потребителя",
|
||
"termsResponsibilityApiKeys": "Вие носите цялата отговорност за управлението на вашите собствени API ключове и идентификационни данни за доставчици на AI трети страни (OpenAI, Anthropic, Google и др.).",
|
||
"termsResponsibilityCompliance": "Трябва да спазвате условията за обслужване на всеки доставчик на AI, до чиито 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"
|
||
}
|
||
}
|