| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929 |
- {
- "actions": {
- "copy": "Копировать",
- "download": "Скачать",
- "copied": "Скопировано"
- },
- "title": {
- "costRanking": "Таблица расходов",
- "costRankingDescription": "Просмотр рейтинга расходов пользователей, данные обновляются каждые 5 минут",
- "usageLogs": "Журналы использования",
- "clients": "Клиенты",
- "userAndKeyManagement": "Управление пользователями и ключами",
- "requestMessages": "Сообщения запроса",
- "activeSessions": "Активные сеансы (последние 5 минут)",
- "sessionMonitoring": "Мониторинг сеансов",
- "sessionMonitoringDescription": "Отображение активных и неактивных сеансов в реальном времени (автоматическое обновление каждые 3 секунды)",
- "inactiveSessions": "Неактивные сеансы (более 5 минут, только просмотр)",
- "quotasManagement": "Управление квотами",
- "quotasManagementDescription": "Просмотр и управление квотами на всех уровнях",
- "usersQuotas": "Статистика квот пользователей",
- "keysQuotas": "Статистика квот ключей",
- "providersQuotas": "Статистика квот поставщиков",
- "usageLogsDescription": "Просмотр журналов вызовов API и статистики использования",
- "filterCriteria": "Критерии фильтрации",
- "filterCriteriaDescription": "Фильтруйте журналы по времени, пользователю, поставщику и другим параметрам"
- },
- "description": {
- "viewApiCallLogs": "Просмотр журналов вызовов API и статистики использования",
- "dashboard": "Просмотр системной статистики и информации мониторинга",
- "quotas": "Просмотр и управление квотами на всех уровнях",
- "clientInfo": "Заголовок запроса User-Agent",
- "requestMessagesDescription": "Содержимое сообщения, отправленного клиентом",
- "responseBodyDescription": "Полный ответ сервера (TTL 5 минут)"
- },
- "overview": {
- "title": "Обзор",
- "totalRequests": "Всего запросов",
- "totalCost": "Общие затраты",
- "totalUsers": "Всего пользователей",
- "totalProviders": "Всего поставщиков",
- "activeUsers": "Активные пользователи",
- "activeSessions": "Активные сеансы",
- "errorRate": "Коэффициент ошибок",
- "avgResponseTime": "Среднее время ответа"
- },
- "stats": {
- "title": "Статистика",
- "requests": "Запросы",
- "cost": "Стоимость",
- "tokens": "Токены",
- "period": {
- "hour": "Последний час",
- "day": "Сегодня",
- "week": "На этой неделе",
- "month": "В этом месяце"
- }
- },
- "logs": {
- "title": "Журналы использования",
- "description": "Просмотр и анализ записей вызовов API",
- "filters": {
- "user": "Пользователь",
- "provider": "Поставщик",
- "sessionId": "ID сессии",
- "searchUser": "Поиск пользователей...",
- "searchProvider": "Поиск провайдеров...",
- "searchSessionId": "Поиск ID сессии...",
- "noUserFound": "Пользователи не найдены",
- "noProviderFound": "Провайдеры не найдены",
- "noSessionFound": "ID сессии не найдены",
- "model": "Модель",
- "endpoint": "Эндпоинт",
- "status": "Статус",
- "timeRange": "Диапазон времени",
- "dateRange": "Диапазон дат",
- "startTime": "Время начала",
- "endTime": "Время окончания",
- "allUsers": "Все пользователи",
- "allKeys": "Все ключи",
- "selectUserFirst": "Сначала выберите пользователя",
- "allProviders": "Все поставщики",
- "allModels": "Все модели",
- "allEndpoints": "Все эндпоинты",
- "allStatusCodes": "Все коды состояния",
- "apiKey": "API ключ",
- "statusCode": "Код состояния",
- "minRetryCount": "Количество ретраев ≥",
- "minRetryCountPlaceholder": "Введите минимум (0 — без ограничения)",
- "apply": "Применить фильтр",
- "reset": "Сброс",
- "last7days": "7д",
- "last30days": "30д",
- "customRange": "Произвольный диапазон",
- "export": "Экспорт",
- "exporting": "Экспорт...",
- "exportSuccess": "Экспорт завершен",
- "exportError": "Ошибка экспорта",
- "quickFilters": {
- "today": "Сегодня",
- "thisWeek": "Эта неделя",
- "errorsOnly": "Только ошибки",
- "showRetries": "С ретраями"
- },
- "activeFilters": {
- "title": "Активные фильтры",
- "remove": "Удалить фильтр",
- "clearAll": "Очистить все"
- },
- "groups": {
- "time": "Период времени",
- "timeDesc": "Фильтр по дате и времени",
- "identity": "Идентификация",
- "identityDesc": "Фильтр по пользователю и ключу",
- "request": "Запрос",
- "requestDesc": "Фильтр по поставщику, модели, эндпоинту",
- "status": "Статус",
- "statusDesc": "Фильтр по коду состояния и ретраям"
- }
- },
- "columns": {
- "time": "Время",
- "user": "Пользователь",
- "key": "Ключ",
- "sessionId": "ID сессии",
- "provider": "Поставщик",
- "model": "Модель тарификации",
- "endpoint": "Эндпоинт",
- "inputTokens": "Вход",
- "outputTokens": "Выход",
- "tokens": "Tokens",
- "cacheWrite": "Запись в кэш",
- "cacheRead": "Чтение из кэша",
- "cache": "Cache",
- "cost": "Стоимость",
- "duration": "Продолжительность",
- "performance": "Perf",
- "status": "Статус"
- },
- "stats": {
- "title": "Сводка статистики",
- "description": "Агрегированная статистика по текущим фильтрам",
- "totalAmount": "Общая сумма расходов",
- "totalTokens": "Общее количество токенов",
- "cacheTokens": "Токены кэша",
- "input": "Вход",
- "output": "Выход",
- "write": "Запись",
- "read": "Чтение",
- "totalRequests": "Всего запросов",
- "loading": "Загрузка..."
- },
- "table": {
- "noData": "Нет данных",
- "pagination": "Всего {total} записей, страница {page} / {totalPages}",
- "prevPage": "Предыдущая",
- "nextPage": "Следующая",
- "blocked": "Заблокировано",
- "nonBilling": "Не тарифицируется",
- "skipped": "Пропущено",
- "specialSettings": "Особые",
- "times": "раз",
- "loadedCount": "Загружено {count} записей",
- "loadingMore": "Загрузка...",
- "noMoreData": "Все записи загружены",
- "scrollToTop": "Наверх",
- "hideProviderColumn": "Скрыть столбец провайдера",
- "showProviderColumn": "Показать столбец провайдера",
- "columnVisibility": "Видимость столбцов"
- },
- "actions": {
- "refresh": "Обновить",
- "refreshing": "Обновление...",
- "stopAutoRefresh": "Остановить автообновление",
- "startAutoRefresh": "Начать автообновление",
- "view": "Просмотр",
- "fullscreen": "Полный экран",
- "exitFullscreen": "Выйти из полного экрана"
- },
- "error": {
- "loadFailed": "Ошибка загрузки",
- "loadKeysFailed": "Не удалось загрузить список ключей"
- },
- "details": {
- "title": "Детали запроса",
- "statusTitle": "Статус: {status}",
- "inProgress": "В процессе",
- "unknown": "Неизвестно",
- "success": "Запрос успешно выполнен",
- "error": "Запрос не выполнен, ниже подробная информация об ошибке и цепочке решений поставщика",
- "processing": "Запрос находится в процессе выполнения и еще не завершен",
- "tabs": {
- "summary": "Обзор",
- "logicTrace": "Цепочка решений",
- "performance": "Производительность",
- "metadata": "Метаданные"
- },
- "summary": {
- "keyMetrics": "Ключевые показатели",
- "totalCost": "Общая стоимость",
- "totalTokens": "Всего токенов",
- "duration": "Длительность",
- "outputRate": "Скорость вывода",
- "viewFullError": "Показать полную ошибку",
- "viewSession": "Просмотр сеанса"
- },
- "specialSettings": {
- "title": "Особые настройки"
- },
- "skipped": {
- "title": "Пропущено",
- "reason": "Причина",
- "warmup": "Warmup быстрый ответ (CCH)",
- "desc": "Этот запрос был распознан как Warmup-проба и был обработан самим CCH без обращения к провайдерам; он не тарифицируется, не учитывается в лимитах и исключается из статистики."
- },
- "blocked": {
- "title": "Информация о блокировке",
- "type": "Тип блокировки",
- "sensitiveWord": "Блокировка по ключевым словам",
- "word": "Ключевое слово",
- "matchType": "Тип совпадения",
- "matchTypeContains": "Содержит",
- "matchTypeExact": "Точное совпадение",
- "matchTypeRegex": "Регулярное выражение",
- "matchedText": "Совпадающий контент"
- },
- "sessionId": "ID сеанса",
- "messagesCount": "Количество сообщений",
- "messagesLabel": "Сообщения",
- "messagesUnit": "шт.",
- "clientInfo": "Информация о клиенте",
- "modelRedirect": {
- "title": "Перенаправление модели",
- "requestModel": "Запрошенная модель",
- "actualModel": "Фактический вызов",
- "billing": "Описание тарификации",
- "billingDescription": "Система в первую очередь тарифицирует по цене запрошенной модели ({original}). Если эта модель отсутствует в прайс-листе, используется цена фактически вызванной модели ({current}).",
- "billingModel": "Модель тарификации",
- "actualModelTooltip": "Фактическая модель: {model}",
- "originalModelTooltip": "Исходная модель: {model}",
- "billingDescription_original": "Текущий режим тарификации: По исходной модели до перенаправления ({original})",
- "billingDescription_redirected": "Текущий режим тарификации: По фактической модели после перенаправления ({current})",
- "billingOriginal": "оплата: исх.",
- "billingRedirected": "оплата: факт."
- },
- "errorMessage": "Сообщение об ошибке",
- "fake200ForwardedNotice": "Примечание: для потоковых запросов эта ошибка может быть обнаружена только после завершения потока; содержимое ответа могло уже быть передано клиенту.",
- "filteredProviders": "Отфильтрованные поставщики",
- "providerChain": {
- "title": "Хронология цепочки решений поставщика",
- "totalDuration": "Общая продолжительность: {duration}мс"
- },
- "noError": {
- "processing": "Запрос обрабатывается, ожидание ответа...",
- "success": "Запрос успешно выполнен, ошибок нет",
- "default": "Подробная информация об ошибке отсутствует"
- },
- "clickStatusCode": "Нажмите на код состояния, чтобы просмотреть полную хронологию",
- "viewDetails": "Просмотр деталей",
- "reasons": {
- "rateLimited": "Лимит стоимости поставщика",
- "circuitOpen": "Размыкатель цепи открыт"
- },
- "billingDetails": {
- "title": "Детали биллинга",
- "input": "Входные",
- "output": "Выходные",
- "cacheWrite5m": "Запись кэша (5m)",
- "cacheWrite1h": "Запись кэша (1h)",
- "cacheRead": "Чтение кэша",
- "cacheTtl": "TTL кэша",
- "multiplier": "Множитель поставщика",
- "totalCost": "Общая стоимость",
- "context1m": "1M контекст",
- "context1mPricing": "Вход 2x >200k, Выход 1.5x >200k"
- },
- "performance": {
- "title": "Производительность",
- "ttfb": "TTFB",
- "duration": "Общее время",
- "outputRate": "Скорость вывода"
- },
- "performanceTab": {
- "noPerformanceData": "Нет данных о производительности",
- "ttfbGauge": "Время до первого байта",
- "outputRateGauge": "Скорость вывода",
- "latencyBreakdown": "Разбивка задержки",
- "generationTime": "Время генерации",
- "assessment": {
- "excellent": "Отлично",
- "good": "Хорошо",
- "warning": "Предупреждение",
- "poor": "Плохо"
- },
- "thresholds": {
- "ttfbGood": "TTFB < 1с",
- "ttfbWarning": "TTFB 1-2с",
- "ttfbPoor": "TTFB > 3с"
- }
- },
- "metadata": {
- "noMetadata": "Нет метаданных",
- "sessionInfo": "Информация о сеансе",
- "clientInfo": "Информация о клиенте",
- "billingInfo": "Информация о биллинге",
- "technicalTimeline": "Техническая хронология",
- "copyTimeline": "Копировать хронологию"
- },
- "logicTrace": {
- "title": "Цепочка решений",
- "noDecisionData": "Нет данных о решениях",
- "providersCount": "{count} поставщиков",
- "healthyCount": "{count} исправных",
- "initialSelection": "Начальный выбор",
- "healthCheck": "Проверка работоспособности",
- "prioritySelection": "Выбор по приоритету",
- "attemptProvider": "Попытка: {provider}",
- "retryAttempt": "Повтор #{number}",
- "sessionReuse": "Повторное использование сессии",
- "sessionReuseDesc": "Провайдер из кэша сессии",
- "sessionReuseTitle": "Привязка сессии",
- "sessionReuseSelection": "Выбор с повторным использованием сессии",
- "sessionReuseSelectionDesc": "Провайдер выбран из кэша сессии",
- "sessionInfo": "Информация о сессии",
- "sessionIdLabel": "ID сессии",
- "requestSequence": "Номер запроса",
- "sessionAge": "Возраст сессии",
- "reusedProvider": "Повторно используемый провайдер",
- "executeRequest": "Выполнить запрос",
- "cacheOptimizationHint": "Повторное использование сессии оптимизирует производительность, поддерживая привязку к провайдеру в рамках одного разговора, снижая накладные расходы на выбор и повышая частоту попаданий в кэш."
- }
- },
- "providerChain": {
- "decisionChain": "Цепочка решений поставщика",
- "clickItemForDetails": "Нажмите на шаг, чтобы посмотреть детали"
- },
- "modelRedirect": {
- "redirected": "Перенаправлено",
- "targetModel": "Целевая модель"
- },
- "statusCodes": {
- "not200": "Не 200 (ошибки/блокировки)",
- "200": "200 (Успех)",
- "400": "400 (Неверный запрос)",
- "401": "401 (Не авторизован)",
- "429": "429 (Ограничение)",
- "500": "500 (Ошибка сервера)"
- },
- "billingDetails": {
- "input": "Входные",
- "output": "Выходные",
- "cacheWrite5m": "Запись кэша (5m)",
- "cacheWrite1h": "Запись кэша (1h)",
- "cacheRead": "Чтение кэша",
- "cacheTtl": "TTL кэша",
- "multiplier": "Множитель поставщика",
- "totalCost": "Общая стоимость",
- "context1m": "1M Контекст",
- "context1mPricing": "Вход >200k 2x, Выход >200k 1.5x"
- }
- },
- "leaderboard": {
- "title": "Таблица расходов",
- "description": "Просмотр рейтинга расходов пользователей и ключей",
- "todayTitle": "Сегодняшний рейтинг",
- "viewAll": "Смотреть все",
- "userRankings": "Рейтинг пользователей",
- "providerRankings": "Рейтинг поставщиков",
- "modelRankings": "Рейтинг моделей",
- "noData": "Нет данных за сегодня",
- "requests": "запросов",
- "tokens": "токенов",
- "tabs": {
- "users": "Рейтинг пользователей",
- "keys": "Рейтинг ключей",
- "userRanking": "Рейтинг пользователей",
- "providerRanking": "Рейтинг поставщиков",
- "providerCacheHitRateRanking": "Рейтинг по попаданиям в кэш",
- "modelRanking": "Рейтинг моделей",
- "dailyRanking": "Сегодня",
- "weeklyRanking": "Эта неделя",
- "monthlyRanking": "Этот месяц",
- "allTimeRanking": "Всё время"
- },
- "dateRange": {
- "to": "по",
- "prevPeriod": "Предыдущий период",
- "nextPeriod": "Следующий период",
- "customRange": "Произвольный диапазон"
- },
- "columns": {
- "rank": "Ранг",
- "name": "Имя",
- "totalCost": "Общие затраты",
- "totalRequests": "Всего запросов",
- "avgCost": "Средние затраты",
- "lastActive": "Последняя активность",
- "user": "Пользователь",
- "requests": "Количество запросов",
- "tokens": "Количество токенов",
- "consumedAmount": "Потраченная сумма",
- "provider": "Поставщик",
- "model": "Модель",
- "cost": "Стоимость",
- "cacheHitRequests": "Запросы (учтены в hit rate)",
- "cacheHitRate": "Попадания в кэш",
- "cacheReadTokens": "Токены чтения из кэша",
- "totalTokens": "Всего токенов",
- "cacheCreationConsumedAmount": "Расход на создание кэша",
- "totalConsumedAmount": "Общие расходы",
- "successRate": "Процент успеха",
- "avgResponseTime": "Среднее время ответа",
- "avgTtfbMs": "Средний TTFB",
- "avgTokensPerSecond": "Средн. ток/с",
- "avgCostPerRequest": "Ср. стоимость/запрос",
- "avgCostPerMillionTokens": "Ср. стоимость/1М токенов"
- },
- "expandModelStats": "Развернуть модели",
- "collapseModelStats": "Свернуть модели",
- "states": {
- "loading": "Загрузка...",
- "noData": "Нет данных",
- "todayNoData": "Нет данных за сегодня",
- "weekNoData": "Нет данных за эту неделю",
- "monthNoData": "Нет данных за этот месяц",
- "fetchFailed": "Не удалось получить данные таблицы лидеров"
- },
- "permission": {
- "title": "Требуются разрешения",
- "restricted": "Доступ ограничен",
- "description": "Для функции таблицы лидеров администратору необходимо включить разрешение «Разрешить просмотр использования всего сайта».",
- "adminAction": "Включить это разрешение.",
- "userAction": "Пожалуйста, свяжитесь с администратором, чтобы включить это разрешение.",
- "systemSettings": "Настройки системы"
- },
- "filters": {
- "userTagsPlaceholder": "Фильтр по тегам пользователей...",
- "userGroupsPlaceholder": "Фильтр по группам пользователей..."
- }
- },
- "sessions": {
- "title": "Активные сеансы",
- "description": "Мониторинг активных сеансов API в режиме реального времени",
- "monitoring": "Мониторинг сеансов",
- "monitoringDescription": "Отображение активных и неактивных сеансов в реальном времени (автоматическое обновление каждые 3 секунды)",
- "activeSessions": "Активные сеансы (последние 5 минут)",
- "inactiveSessions": "Неактивные сеансы (более 5 минут, только просмотр)",
- "columns": {
- "sessionId": "ID сеанса",
- "user": "Пользователь",
- "key": "Ключ",
- "provider": "Поставщик",
- "model": "Модель",
- "startTime": "Время начала",
- "lastActivity": "Последняя активность",
- "requestCount": "Количество запросов",
- "totalInput": "Общий ввод",
- "totalOutput": "Общий вывод",
- "totalCost": "Общая стоимость",
- "totalDuration": "Общая продолжительность",
- "status": "Статус",
- "actions": "Действия"
- },
- "table": {
- "count": "Всего {count} {type} сеансов",
- "active": "Активные",
- "inactive": "Неактивные",
- "notCountedInConcurrency": "(не учитывается в параллельных запросах)",
- "refreshing": "Обновление...",
- "noActiveSessions": "Нет активных сеансов"
- },
- "pagination": {
- "total": "всего"
- },
- "details": {
- "title": "Сообщения сеанса",
- "messages": "Список сообщений",
- "info": "Информация сеанса",
- "timeline": "Хронология",
- "overview": "Обзор сеанса",
- "overviewDescription": "Сводная статистика",
- "providersAndModels": "Поставщики и модели",
- "providersAndModelsDescription": "Используемые поставщики и модели",
- "tokenUsage": "Использование токенов (всего)",
- "tokenUsageDescription": "Кумулятивная статистика по всем запросам",
- "costInfo": "Информация о стоимости (всего)",
- "costInfoDescription": "Кумулятивная стоимость по всем запросам",
- "totalRequests": "Всего запросов",
- "firstRequest": "Первый запрос",
- "lastRequest": "Последний запрос",
- "totalDuration": "Общая продолжительность",
- "totalInput": "Общий ввод",
- "totalOutput": "Общий вывод",
- "cacheCreation": "Создание кэша",
- "cacheTtlMixed": "Смешанный",
- "cacheRead": "Чтение из кэша",
- "total": "Всего",
- "totalFee": "Общая плата",
- "providers": "Поставщики",
- "models": "Модели",
- "noDetailedData": "Подробные данные отсутствуют",
- "storageTip": "Подробные данные не найдены. Возможные причины: Redis отключен/недоступен (REDIS_URL + ENABLE_RATE_LIMIT=true), данные истекли (SESSION_TTL, по умолчанию 300с), или сохранение тела ответа отключено (STORE_SESSION_RESPONSE_BODY=false, влияет только на тело ответа). Чтобы сохранять сообщения без маскировки, установите STORE_SESSION_MESSAGES=true.",
- "clientInfo": "Информация о клиенте",
- "requestHeaders": "Заголовки запроса",
- "requestBody": "Тело запроса",
- "requestMessages": "Сообщения запроса",
- "specialSettings": "Особые",
- "requestMessagesDescription": "Содержимое сообщения, отправленного клиентом",
- "responseHeaders": "Заголовки ответа",
- "responseBody": "Тело ответа",
- "responseBodyDescription": "Полный ответ сервера (TTL 5 минут)",
- "noHeaders": "Нет данных",
- "noData": "Нет данных",
- "prevRequest": "Предыдущий",
- "nextRequest": "Следующий"
- },
- "actions": {
- "back": "Назад",
- "view": "Просмотр",
- "copy": "Копировать",
- "download": "Скачать",
- "copyMessages": "Копировать запрос (заголовки и тело)",
- "downloadMessages": "Скачать запрос (заголовки и тело)",
- "copied": "Скопировано",
- "copyResponse": "Копировать тело ответа",
- "terminate": "Прервать",
- "terminateTitle": "Прервать сессию",
- "terminateDescription": "Вы уверены, что хотите прервать эту сессию? После прерывания привязка поставщика будет очищена, и следующий запрос выберет нового поставщика.",
- "sessionIdLabel": "ID сессии: {sessionId}",
- "cancel": "Отмена",
- "confirmTerminate": "Прервать",
- "terminating": "Прерывание...",
- "terminateSuccess": "Сессия успешно прервана",
- "terminateFailed": "Не удалось прервать сессию",
- "terminateSelected": "Прервать выбранные",
- "selectedCount": "Выбрано: {count}",
- "selectAll": "Выбрать все",
- "selectSessionLabel": "Выбрать сессию",
- "multiSelect": "Множественный выбор",
- "cancelMultiSelect": "Отмена",
- "terminateSessionTitle": "Прервать сессию",
- "terminateSessionDescription": "Вы уверены, что хотите прервать эту сессию? Это действие нельзя отменить.",
- "batchTerminateSuccess": "Прервано {count} сессий",
- "batchTerminatePartial": "Без прав: {unauthorized} · Отсутствуют: {missing}",
- "batchTerminateAllowedFailed": "Не удалось прервать {count} разрешённых сессий",
- "batchTerminateNone": "Не удалось прервать ни одной сессии",
- "noSelection": "Выберите хотя бы одну сессию"
- },
- "codeDisplay": {
- "raw": "Сырой",
- "pretty": "Форматированный",
- "searchPlaceholder": "Поиск",
- "expand": "Развернуть",
- "collapse": "Свернуть",
- "themeAuto": "Авто",
- "themeLight": "Светлая",
- "themeDark": "Тёмная",
- "noMatches": "Нет совпадений",
- "onlyMatches": "Только совпадения",
- "showAll": "Показать всё",
- "prevPage": "Назад",
- "nextPage": "Вперёд",
- "pageInfo": "Страница {page} / {total}",
- "sseEvent": "Событие",
- "sseData": "Данные",
- "hardLimit": {
- "title": "Содержимое слишком большое",
- "size": "Размер: {sizeMB} MB ({sizeBytes} bytes)",
- "maximum": "Максимум: {maxSizeMB} MB или {maxLines} строк",
- "hint": "Пожалуйста, скачайте файл, чтобы посмотреть весь контент.",
- "download": "Скачать"
- }
- },
- "status": {
- "loading": "Загрузка...",
- "loadError": "Ошибка загрузки",
- "fetchFailed": "Не удалось получить",
- "unknownError": "Неизвестная ошибка",
- "storageNotEnabled": "Не сохранено",
- "storageNotEnabledHint": "Подсказка: проверьте REDIS_URL и ENABLE_RATE_LIMIT=true (кэш деталей сессии). Чтобы сохранять сообщения без маскировки, установите STORE_SESSION_MESSAGES=true."
- },
- "errors": {
- "copyFailed": "Не удалось скопировать"
- },
- "requestList": {
- "title": "Список запросов",
- "noRequests": "Запросы не найдены",
- "fetchFailed": "Не удалось получить список запросов",
- "unknownError": "Неизвестная ошибка",
- "prev": "Назад",
- "next": "Вперед",
- "orderAsc": "Переключить на прямой порядок (старые первыми)",
- "orderDesc": "Переключить на обратный порядок (новые первыми)"
- },
- "back": "Назад",
- "loadingError": "Не удалось загрузить"
- },
- "quotas": {
- "title": "Управление квотами",
- "description": "Управление квотами пользователей, ключей и поставщиков",
- "tabs": {
- "overview": "Обзор",
- "users": "Квоты пользователей",
- "keys": "Квоты ключей",
- "providers": "Квоты поставщиков"
- },
- "columns": {
- "name": "Имя",
- "limit": "Лимит",
- "used": "Использовано",
- "remaining": "Осталось",
- "resetTime": "Время сброса",
- "status": "Статус"
- },
- "labels": {
- "byName": "По имени",
- "byUsageRate": "По уровню использования",
- "all": "Все",
- "warning": "Приближается к лимиту (>60%)",
- "exceeded": "Превышено (≥100%)"
- },
- "users": {
- "title": "Статистика квот пользователей",
- "totalUsers": "Всего {count} пользователей"
- },
- "keys": {
- "title": "Статистика квот ключей",
- "totalKeysInfo": "Всего {userCount} пользователей, {keyCount} ключей",
- "setKeyQuota": "Установить квоту ключа",
- "setUserQuota": "Установить квоту пользователя",
- "onlyKeyQuota": "Только квота ключа",
- "onlyUserQuota": "Только квота пользователя",
- "success": "Квота пользователя установлена успешно"
- },
- "providers": {
- "title": "Статистика квот поставщиков",
- "totalProviders": "Всего {count} поставщиков"
- }
- },
- "labels": {
- "byName": "По имени",
- "byUsageRate": "По уровню использования"
- },
- "all": "Все",
- "nav": {
- "mobileMenuTitle": "Меню навигации",
- "dashboard": "Панель",
- "usageLogs": "Журналы",
- "leaderboard": "Лидеры",
- "availability": "Мониторинг",
- "myQuota": "Моя квота",
- "quotasManagement": "Квоты",
- "userManagement": "Пользователи",
- "providers": "Поставщики",
- "documentation": "Доки",
- "systemSettings": "Настройки",
- "feedback": "Обратная связь",
- "login": "Вход",
- "logout": "Выход"
- },
- "statistics": {
- "title": "Статистика",
- "cost": "Сумма расходов",
- "calls": "Количество вызовов API",
- "totalCost": "Общая сумма расходов",
- "totalCalls": "Общее количество вызовов API",
- "timeRange": {
- "today": "Сегодня",
- "todayDescription": "Использование за сегодня",
- "7days": "7д",
- "7daysDescription": "Использование за последние 7 дней",
- "30days": "30д",
- "30daysDescription": "Использование за последние 30 дней",
- "thisMonth": "Этот месяц",
- "thisMonthDescription": "Использование за этот месяц",
- "default": "Использование"
- },
- "mode": {
- "keys": "Только ваши ключи",
- "mixed": "Показать детали ваших ключей и сводку других пользователей",
- "users": "Показать для всех"
- },
- "legend": {
- "selectAll": "Выбрать все",
- "deselectAll": "Очистить",
- "selected": "Выбрано"
- },
- "chartMode": {
- "label": "Режим отображения",
- "overlay": "Сравнение",
- "stacked": "Накопление"
- },
- "states": {
- "noData": "Нет статистических данных",
- "fetchFailed": "Не удалось получить статистические данные"
- }
- },
- "errors": {
- "fetchSystemSettingsFailed": "Не удалось получить параметры системы",
- "fetchFailed": "Ошибка загрузки",
- "fetchSessionListFailed": "Не удалось получить список сеансов"
- },
- "keyList": {
- "columns": {
- "name": "Название",
- "key": "Ключ",
- "todayCalls": "Вызовы сегодня",
- "todayCost": "Расходы сегодня",
- "lastUsed": "Последнее использование",
- "actions": "Действия"
- },
- "detailsButton": "Подробная информация",
- "modelStats": "Статистика моделей",
- "modelStatsColumns": {
- "model": "Модель",
- "calls": "Вызовы",
- "cost": "Расходы"
- },
- "limitUsage": "Использование лимита",
- "copyKeyTooltip": "Скопировать полный ключ",
- "showKeyTooltip": "Показать полный ключ",
- "hideKeyTooltip": "Скрыть ключ",
- "copyFailed": "Не удалось скопировать:",
- "timesUnit": "раз",
- "provider": "Провайдер",
- "neverUsed": "Не использовался",
- "viewLogsTooltip": "Просмотр подробных журналов",
- "logsButton": "Журналы",
- "emptyState": {
- "title": "Нет ключей",
- "description": "Нажмите кнопку \"Добавить ключ\" в правом верхнем углу, чтобы добавить ключ"
- }
- },
- "userList": {
- "title": "Список пользователей",
- "badge": "{count} ключей",
- "activeKeys": "Активные ключи",
- "totalKeys": "Всего ключей",
- "expiresAt": "Срок действия",
- "status": {
- "active": "Активен",
- "expiringSoon": "Скоро истечет",
- "expired": "Истек",
- "disabled": "Отключен"
- },
- "actions": {
- "renew": "Продлить",
- "renew30d": "Продлить на 30 дней",
- "renew90d": "Продлить на 90 дней",
- "renew1y": "Продлить на 1 год",
- "renewCustom": "Настроить...",
- "customPrompt": "Введите новую дату истечения (ГГГГ-ММ-ДД). Оставьте пустым для отмены.",
- "invalidDate": "Пожалуйста, введите действительную дату",
- "enable": "Включить",
- "disable": "Отключить",
- "success": "Операция выполнена успешно",
- "failed": "Операция не удалась, попробуйте еще раз"
- },
- "emptyState": {
- "title": "Нет пользователей",
- "description": "Вы еще не создали ни одного пользователя. Пользователи являются основой для управления API-ключами и квотами использования. Создайте первого пользователя, чтобы начать!",
- "action": "Создать первого пользователя"
- },
- "addUser": "Добавить пользователя"
- },
- "keyListHeader": {
- "todayUsage": "Использование сегодня",
- "allowedModels": {
- "label": "Разрешённые модели",
- "noRestrictions": "Разрешённые модели: без ограничений"
- },
- "expiresAt": "Истекает",
- "proxyStatus": {
- "loading": "Загрузка статуса прокси",
- "fetchFailed": "Не удалось получить статус прокси",
- "noStatus": "Нет статуса прокси",
- "activeRequests": "Активные запросы",
- "lastRequest": "Последний запрос",
- "noRecord": "Нет записи",
- "timeAgo": {
- "justNow": "Только что",
- "secondsAgo": "{count}с назад",
- "minutesAgo": "{count} мин назад",
- "hoursAgo": "{count}ч назад",
- "daysAgo": "{count}д назад"
- }
- },
- "addKey": "Добавить ключ",
- "keyCreatedDialog": {
- "title": "Ключ успешно создан",
- "description": "Ваш API-ключ был успешно создан. Пожалуйста, скопируйте и сохраните его в безопасном месте, так как он будет показан только один раз.",
- "apiKeyLabel": "API ключ",
- "warningText": "Пожалуйста, скопируйте и сохраните перед закрытием. После закрытия вы не сможете снова просмотреть этот ключ",
- "httpWarningText": "Обнаружен HTTP-доступ. Ограничения браузера не позволяют использовать функцию копирования. Нажмите на значок глаза, чтобы показать ключ и скопировать его вручную.",
- "copyTooltip": "Скопировать в буфер обмена",
- "showTooltip": "Показать полный ключ",
- "hideTooltip": "Скрыть ключ",
- "closeButton": "Закрыть"
- },
- "allowedClients": {
- "label": "Разрешённые клиенты",
- "noRestrictions": "Разрешённые клиенты: без ограничений"
- }
- },
- "keyLimitUsage": {
- "loading": "Загрузка...",
- "error": "Ошибка загрузки",
- "networkError": "Сетевая ошибка",
- "cost5h": "Расход за 5 часов",
- "costDaily": "Дневной расход",
- "costWeekly": "Недельный расход",
- "costMonthly": "Месячный расход",
- "concurrentSessions": "Параллельные сеансы",
- "noLimit": "Без ограничений"
- },
- "addKeyForm": {
- "title": "Добавить ключ",
- "description": "Создать новый API-ключ для текущего пользователя. Значение ключа будет сгенерировано автоматически.",
- "submitText": "Создать ключ",
- "loadingText": "Создание...",
- "keyName": {
- "label": "Имя ключа",
- "placeholder": "Введите имя ключа"
- },
- "expiresAt": {
- "label": "Срок действия",
- "placeholder": "Выберите срок действия",
- "description": "Оставьте пустым для бессрочного ключа"
- },
- "canLoginWebUi": {
- "label": "Разрешить вход в веб-интерфейс",
- "description": "При отключении этот ключ можно использовать только для вызовов API и нельзя использовать для входа в панель администрирования"
- },
- "limit5hUsd": {
- "label": "Лимит расходов за 5 часов (USD)",
- "placeholder": "Оставьте пустым для неограниченного",
- "description": "Максимальный расход в течение 5 часов",
- "descriptionWithUserLimit": "Максимальный расход за 5 часов (Лимит пользователя: {limit})"
- },
- "limitDailyUsd": {
- "label": "Дневной лимит расходов (USD)",
- "placeholder": "Оставьте пустым для неограниченного",
- "description": "Максимальный расход в день"
- },
- "dailyResetMode": {
- "label": "Режим ежедневного сброса",
- "options": {
- "fixed": "Сброс в фиксированное время",
- "rolling": "Скользящее окно (24 часа)"
- },
- "desc": {
- "fixed": "Сброс квоты в определенное время каждый день",
- "rolling": "24-часовое скользящее окно от первого запроса"
- }
- },
- "dailyResetTime": {
- "label": "Время ежедневного сброса",
- "placeholder": "HH:mm",
- "description": "Когда сбрасывается дневной лимит (использует системный часовой пояс)"
- },
- "limitWeeklyUsd": {
- "label": "Недельный лимит расходов (USD)",
- "placeholder": "Оставьте пустым для неограниченного",
- "description": "Максимальный расход в неделю",
- "descriptionWithUserLimit": "Максимальный расход в неделю (Лимит пользователя: {limit})"
- },
- "limitMonthlyUsd": {
- "label": "Месячный лимит расходов (USD)",
- "placeholder": "Оставьте пустым для неограниченного",
- "description": "Максимальный расход в месяц",
- "descriptionWithUserLimit": "Максимальный расход в месяц (Лимит пользователя: {limit})"
- },
- "limitTotalUsd": {
- "label": "Общий лимит расходов (USD)",
- "placeholder": "Оставьте пустым для неограниченного",
- "description": "Максимальная сумма расходов (без сброса)",
- "descriptionWithUserLimit": "Не может превышать общий лимит пользователя ({limit})"
- },
- "limitConcurrentSessions": {
- "label": "Лимит параллельных сеансов",
- "placeholder": "0 означает неограниченно",
- "description": "Количество одновременных разговоров",
- "descriptionWithUserLimit": "Максимум сеансов (Лимит пользователя: {limit})"
- },
- "providerGroup": {
- "label": "Группа провайдеров",
- "placeholder": "Введите теги групп провайдеров и нажмите Enter",
- "description": "Группы провайдеров для этого ключа (по умолчанию: default).",
- "defaultDescription": "default включает провайдеров без groupTag.",
- "descriptionWithUserGroup": "Группы провайдеров для этого ключа (группы пользователя: {group}; по умолчанию: default)."
- },
- "cacheTtl": {
- "label": "Переопределение Cache TTL",
- "description": "Принудительно установить Anthropic prompt cache TTL для запросов с cache_control.",
- "options": {
- "inherit": "Не переопределять (следовать провайдеру/клиенту)",
- "5m": "5m",
- "1h": "1h"
- }
- },
- "successTitle": "Ключ успешно создан",
- "successDescription": "Ваш API-ключ был успешно создан.",
- "generatedKey": {
- "label": "Сгенерированный ключ",
- "hint": "Вы можете управлять этим ключом в списке ключей (включить/выключить, лимиты и т. д.), но полный ключ показывается только один раз. Скопируйте и сохраните его сейчас."
- },
- "errors": {
- "userIdMissing": "ID пользователя не существует",
- "createFailed": "Не удалось создать, попробуйте позже",
- "noKeyReturned": "Создан успешно, но ключ не был возвращен"
- }
- },
- "userForm": {
- "title": {
- "add": "Добавить пользователя",
- "edit": "Редактировать пользователя"
- },
- "description": {
- "add": "Создать нового пользователя. Система автоматически сгенерирует ключ по умолчанию.",
- "edit": "Изменить основную информацию пользователя."
- },
- "submitText": {
- "add": "Создать пользователя",
- "edit": "Сохранить изменения"
- },
- "loadingText": {
- "add": "Создание...",
- "edit": "Сохранение..."
- },
- "username": {
- "label": "Имя пользователя",
- "placeholder": "Введите имя пользователя"
- },
- "note": {
- "label": "Примечание",
- "placeholder": "Введите примечание (необязательно)",
- "description": "Используется для описания назначения пользователя или примечаний"
- },
- "providerGroup": {
- "label": "Группа поставщиков",
- "placeholder": "например, default или premium,economy",
- "description": "Группы провайдеров пользователя (по умолчанию: default). Провайдеры без groupTag относятся к default."
- },
- "tags": {
- "label": "Теги пользователя",
- "placeholder": "Введите тег (Enter для добавления)",
- "description": "Добавьте теги для классификации и фильтрации (максимум 20 тегов, до 32 символов каждый)"
- },
- "rpm": {
- "label": "Лимит RPM",
- "placeholder": "Лимит запросов в минуту",
- "description": "По умолчанию: {default}, диапазон: 1-10000"
- },
- "dailyQuota": {
- "label": "Дневная квота",
- "placeholder": "Лимит дневного расхода",
- "helperText": "Установите 0 для неограниченного доступа",
- "description": "По умолчанию: ${default}, диапазон: $0.01-$1000"
- },
- "limit5hUsd": {
- "label": "Лимит на 5 часов (USD)",
- "placeholder": "Оставьте пустым для неограниченного",
- "description": "Максимальный расход за 5 часов"
- },
- "limitWeeklyUsd": {
- "label": "Недельный лимит (USD)",
- "placeholder": "Оставьте пустым для неограниченного",
- "description": "Максимальный недельный расход"
- },
- "limitMonthlyUsd": {
- "label": "Месячный лимит (USD)",
- "placeholder": "Оставьте пустым для неограниченного",
- "description": "Максимальный месячный расход"
- },
- "limitConcurrentSessions": {
- "label": "Лимит одновременных сессий",
- "placeholder": "0 означает неограниченно",
- "description": "Количество одновременных разговоров"
- },
- "isEnabled": {
- "label": "Активировать пользователя",
- "description": "Отключенные пользователи не смогут использовать API"
- },
- "expiresAt": {
- "label": "Срок действия",
- "placeholder": "Оставьте пустым для бессрочного",
- "description": "Пользователь будет автоматически отключен после истечения срока",
- "pastWarning": "Выбранная дата в прошлом. После сохранения пользователь сразу станет просроченным и будет отключен."
- },
- "allowedClients": {
- "label": "Разрешённые клиенты",
- "description": "Ограничьте, какие CLI/IDE клиенты могут использовать эту учётную запись. Пусто = без ограничений.",
- "customLabel": "Пользовательские шаблоны клиентов",
- "customPlaceholder": "Введите шаблон (например, 'xcode', 'my-ide')"
- },
- "allowedModels": {
- "label": "Разрешённые модели",
- "placeholder": "Введите название модели (Enter для добавления)",
- "description": "Ограничить пользователя определёнными моделями ИИ. Оставьте пустым без ограничений (макс. 50 моделей, 64 символа)"
- }
- },
- "deleteKeyConfirm": {
- "title": "Подтвердить удаление ключа",
- "description": "Вы уверены, что хотите удалить ключ \"{name}\"?\n{maskedKey}\nЭто действие нельзя отменить. Все приложения, использующие этот ключ, потеряют доступ.",
- "cancel": "Отмена",
- "confirm": "Подтвердить удаление",
- "confirmLoading": "Удаление...",
- "errors": {
- "deleteFailed": "Не удалось удалить",
- "retryError": "Не удалось удалить, попробуйте позже"
- }
- },
- "keyActions": {
- "edit": "Редактировать",
- "delete": "Удалить",
- "editAriaLabel": "Редактировать ключ",
- "deleteAriaLabel": "Удалить ключ"
- },
- "userActions": {
- "edit": "Редактировать пользователя",
- "delete": "Удалить пользователя",
- "editAriaLabel": "Редактировать пользователя",
- "deleteAriaLabel": "Удалить пользователя"
- },
- "availability": {
- "title": "Мониторинг доступности провайдеров",
- "description": "Мониторинг доступности и показателей производительности провайдеров в реальном времени",
- "nav": "Мониторинг доступности",
- "tabs": {
- "provider": "Доступность провайдеров",
- "endpoint": "Здоровье эндпоинтов"
- },
- "overview": {
- "systemAvailability": "Доступность системы",
- "avgLatency": "Средняя задержка",
- "errorRate": "Коэффициент ошибок",
- "activeProbes": "Активные проверки",
- "load": "Нагрузка"
- },
- "timeRange": {
- "label": "Временной диапазон",
- "15min": "15 мин",
- "1h": "1 час",
- "6h": "6 часов",
- "24h": "24 часа",
- "7d": "7 дней",
- "last15min": "Последние 15 минут",
- "last1h": "Последний час",
- "last6h": "Последние 6 часов",
- "last24h": "Последние 24 часа",
- "last7d": "7д",
- "custom": "Настраиваемый"
- },
- "laneChart": {
- "title": "Хронология доступности провайдеров",
- "noData": "Нет данных",
- "requests": "{count} запросов",
- "availability": "{value}% доступно",
- "noRequests": "Нет запросов",
- "denseData": "Плотные",
- "sparseData": "Разреженные",
- "latency": "Задержка"
- },
- "latencyChart": {
- "title": "Распределение задержки",
- "p50": "P50",
- "p95": "P95",
- "p99": "P99",
- "noData": "Нет данных о задержке"
- },
- "latencyCurve": {
- "title": "Тренд задержки",
- "noData": "Нет данных о задержке",
- "avg": "Средн.",
- "min": "Мин.",
- "max": "Макс.",
- "latency": "Задержка"
- },
- "terminal": {
- "title": "Журнал проверок",
- "live": "LIVE",
- "download": "Скачать журнал",
- "noLogs": "Нет журналов проверок",
- "manual": "Ручная",
- "auto": "Авто",
- "filterPlaceholder": "Фильтр журналов..."
- },
- "probeGrid": {
- "title": "Статус эндпоинтов",
- "noEndpoints": "Эндпоинты не настроены",
- "lastProbe": "Последняя проверка",
- "status": {
- "unknown": "Неизвестно",
- "healthy": "Здоров",
- "unhealthy": "Нездоров"
- }
- },
- "endpoint": {
- "selectVendor": "Выберите вендора",
- "selectType": "Выберите тип"
- },
- "confidence": {
- "low": "Низкая",
- "medium": "Средняя",
- "high": "Высокая",
- "lowTooltip": "Менее {count} запросов. Данные могут быть нерепрезентативными.",
- "mediumTooltip": "Умеренный объём запросов. Данные достаточно надёжны.",
- "highTooltip": "Высокий объём запросов. Данные надёжны."
- },
- "actions": {
- "retry": "Повторить",
- "probeNow": "Проверить сейчас",
- "probing": "Проверка...",
- "probeAll": "Проверить все",
- "probeSuccess": "Проверка успешна",
- "probeFailed": "Проверка не удалась"
- },
- "status": {
- "green": "Здоров",
- "red": "Недоступен",
- "unknown": "Неизвестно"
- },
- "statusDescription": {
- "green": "Сервис работает нормально, запросы успешны",
- "red": "Сервис недоступен или ошибка",
- "unknown": "Данные отсутствуют"
- },
- "metrics": {
- "systemAvailability": "Доступность системы",
- "totalRequests": "Всего запросов",
- "successRate": "Успешность",
- "avgLatency": "Средняя задержка",
- "p50Latency": "P50 задержка",
- "p95Latency": "P95 задержка",
- "p99Latency": "P99 задержка",
- "lastRequest": "Последний запрос",
- "requestCount": "Кол-во запросов"
- },
- "filters": {
- "provider": "Провайдер",
- "allProviders": "Все провайдеры",
- "includeDisabled": "Включить отключённые"
- },
- "sort": {
- "label": "Сортировка",
- "availability": "Доступность",
- "name": "Название",
- "requests": "Запросы"
- },
- "columns": {
- "provider": "Провайдер",
- "type": "Тип",
- "status": "Статус",
- "availability": "Доступность",
- "requests": "Запросы",
- "successRate": "Успешность",
- "avgLatency": "Средняя задержка",
- "lastRequest": "Последний запрос",
- "actions": "Действия"
- },
- "chart": {
- "title": "Тренд доступности",
- "description": "Изменение доступности во времени",
- "availabilityScore": "Оценка доступности",
- "requestVolume": "Объём запросов",
- "latencyTrend": "Тренд задержки",
- "noData": "Нет данных"
- },
- "details": {
- "title": "Детали провайдера",
- "overview": "Обзор",
- "timeBuckets": "Временные интервалы",
- "greenCount": "Успешные запросы",
- "redCount": "Неудачные запросы"
- },
- "actions": {
- "refresh": "Обновить",
- "refreshing": "Обновление...",
- "autoRefresh": "Автообновление",
- "stopAutoRefresh": "Остановить автообновление",
- "viewDetails": "Подробнее",
- "testProvider": "Тестировать провайдера"
- },
- "states": {
- "loading": "Загрузка...",
- "error": "Ошибка загрузки",
- "noProviders": "Нет провайдеров",
- "noData": "Нет данных о доступности",
- "fetchFailed": "Не удалось получить данные о доступности"
- },
- "legend": {
- "green": "Отлично (доступность 95%+)",
- "lime": "Хорошо (доступность 80-95%)",
- "orange": "Внимание (доступность 50-80%)",
- "red": "Недоступен (доступность <50%)",
- "noData": "Нет данных"
- },
- "summary": {
- "title": "Сводка доступности",
- "healthyProviders": "Здоровые провайдеры",
- "unhealthyProviders": "Недоступные провайдеры",
- "unknownProviders": "Нет данных",
- "totalProviders": "Всего провайдеров"
- },
- "heatmap": {
- "bucketSize": "Размер интервала",
- "minutes": "мин",
- "requests": "запросов",
- "noData": "Нет данных",
- "noRequests": "Нет запросов"
- },
- "probeHistory": {
- "title": "История проверок эндпоинтов",
- "description": "Просмотр журналов проверок и запуск ручной проверки для конкретного эндпоинта",
- "selectVendor": "Выберите вендора",
- "selectType": "Выберите тип провайдера",
- "selectEndpoint": "Выберите эндпоинт",
- "noEndpoints": "Эндпоинты не найдены",
- "probeNow": "Проверить",
- "probing": "Проверяем...",
- "columns": {
- "time": "Время",
- "method": "Метод",
- "status": "Статус",
- "latency": "Задержка",
- "error": "Ошибка"
- },
- "success": "Успех",
- "manual": "Ручная проверка",
- "auto": "Автоматическая проверка",
- "probeSuccess": "Проверка успешна",
- "probeFailed": "Проверка не удалась"
- },
- "toast": {
- "refreshSuccess": "Данные о доступности обновлены",
- "refreshFailed": "Обновление не удалось, попробуйте снова"
- }
- },
- "rateLimits": {
- "title": "Статистика событий лимитов",
- "description": "Просмотр и анализ статистики событий лимитов",
- "loading": "Загрузка...",
- "error": "Ошибка загрузки",
- "totalEvents": "Всего событий",
- "avgUsage": "Среднее использование",
- "affectedUsers": "Затронутые пользователи",
- "noData": "Нет данных",
- "noDataHint": "Нет событий лимитов в выбранном диапазоне времени",
- "filters": {
- "startTime": "Начало",
- "endTime": "Конец",
- "user": "Пользователь",
- "provider": "Поставщик",
- "limitType": "Тип лимита",
- "allUsers": "Все пользователи",
- "allProviders": "Все провайдеры",
- "allLimitTypes": "Все типы",
- "apply": "Применить фильтры",
- "reset": "Сбросить",
- "loading": "Загрузка...",
- "limitTypes": {
- "rpm": "Лимит RPM",
- "usd_5h": "Лимит расходов за 5ч",
- "usd_weekly": "Недельный лимит расходов",
- "usd_monthly": "Месячный лимит расходов",
- "concurrent_sessions": "Лимит одновременных сессий",
- "daily_quota": "Дневной лимит квоты"
- }
- },
- "chart": {
- "title": "Хронология событий лимитов",
- "description": "Почасовой тренд событий лимитов",
- "total": "Всего",
- "events": "Событий"
- },
- "breakdown": {
- "title": "Распределение по типам лимитов",
- "description": "Доля событий по типам лимитов",
- "total": "Всего",
- "count": "Событий",
- "percentage": "Доля",
- "noData": "Нет данных",
- "types": {
- "rpm": "RPM",
- "usd_5h": "Расходы 5ч",
- "usd_weekly": "Недельные расходы",
- "usd_monthly": "Месячные расходы",
- "concurrent_sessions": "Одновременные сессии",
- "daily_quota": "Дневная квота"
- }
- },
- "topUsers": {
- "title": "Топ затронутых пользователей",
- "description": "Пользователи, чаще всего попадавшие под лимиты",
- "total": "Всего",
- "rank": "Место",
- "username": "Имя пользователя",
- "eventCount": "Событий",
- "percentage": "Доля",
- "loading": "Загрузка...",
- "noData": "Нет данных"
- }
- },
- "users": {
- "title": "Управление пользователями",
- "description": "Показано {count} пользователей",
- "toolbar": {
- "searchPlaceholder": "Поиск по имени, заметкам, тегам, ключам...",
- "groupFilter": "Фильтр по группе",
- "allGroups": "Все группы",
- "tagFilter": "Фильтр по тегу",
- "allTags": "Все теги",
- "keyGroupFilter": "Группа ключей",
- "allKeyGroups": "Все группы ключей",
- "sortBy": "Сортировка",
- "sortOrder": "Порядок",
- "sortByName": "Имя",
- "sortByTags": "Теги",
- "sortByExpiresAt": "Срок действия",
- "sortByRpm": "Лимит RPM",
- "sortByLimit5h": "Лимит 5 ч",
- "sortByLimitDaily": "Дневной лимит",
- "sortByLimitWeekly": "Недельный лимит",
- "sortByLimitMonthly": "Месячный лимит",
- "sortByCreatedAt": "Дата создания",
- "ascending": "По возрастанию",
- "descending": "По убыванию",
- "statusFilter": "Статус",
- "allStatus": "Все статусы",
- "statusActive": "Активен",
- "statusExpired": "Истек",
- "statusExpiringSoon": "Скоро истечет",
- "statusEnabled": "Включен",
- "statusDisabled": "Отключен",
- "createUser": "Создать пользователя",
- "createKey": "Создать ключ"
- },
- "dialog": {
- "userProviderGroup": "Ваши группы провайдеров",
- "userProviderGroupHint": "Новые ключи могут использовать только ваши существующие группы провайдеров"
- }
- },
- "userManagement": {
- "table": {
- "columns": {
- "username": "Имя пользователя",
- "note": "Примечание",
- "expiresAt": "Дата истечения",
- "expiresAtHint": "Нажмите для быстрого продления",
- "limitRpm": "RPM",
- "limit5h": "Лимит 5 ч",
- "limitDaily": "Дневной лимит",
- "limitWeekly": "Недельный лимит",
- "limitMonthly": "Месячный лимит",
- "limitTotal": "Общий лимит",
- "limitSessions": "Одновременные сессии"
- },
- "keyRow": {
- "name": "Название ключа",
- "key": "Ключ",
- "group": "Группа",
- "todayUsage": "Запросы сегодня",
- "todayCost": "Расход сегодня",
- "todayTokens": "Токены сегодня",
- "lastUsed": "Последнее использование",
- "actions": "Действия",
- "quotaButton": "Просмотр использования квоты",
- "fields": {
- "callsLabel": "Запросы",
- "tokensLabel": "Токены",
- "costLabel": "Расход"
- }
- },
- "expand": "Развернуть",
- "collapse": "Свернуть",
- "refresh": "Обновить",
- "noKeys": "Нет ключей",
- "defaultGroup": "default",
- "userStatus": {
- "disabled": "Отключен"
- },
- "actions": {
- "addKey": "Добавить ключ"
- }
- },
- "keyFullDisplay": {
- "title": "Полный ключ",
- "copySuccess": "Ключ скопирован в буфер обмена",
- "copyFailed": "Не удалось скопировать",
- "show": "Показать ключ",
- "hide": "Скрыть ключ",
- "copied": "Скопировано",
- "copy": "Скопировать ключ"
- },
- "keyStatsDialog": {
- "title": "Статистика моделей за сегодня",
- "columns": {
- "model": "Модель",
- "calls": "Вызовы",
- "tokens": "Токены",
- "cost": "Стоимость"
- },
- "modal": {
- "requests": "Запросов",
- "totalTokens": "Всего токенов",
- "cost": "Стоимость",
- "inputTokens": "Входные токены",
- "outputTokens": "Выходные токены",
- "cacheWrite": "Запись кэша",
- "cacheRead": "Чтение кэша",
- "cacheHitRate": "Попадание кэша",
- "cacheTokens": "Токены кэша",
- "performanceHigh": "Высокий",
- "performanceMedium": "Средний",
- "performanceLow": "Низкий"
- },
- "noData": "Нет записей использования за сегодня",
- "totalCalls": "Всего вызовов",
- "totalCost": "Общий расход"
- },
- "keyQuotaUsageDialog": {
- "title": "Использование квоты ключа",
- "fetchFailed": "Не удалось получить данные квоты",
- "noLimit": "Без лимита",
- "modeFixed": "Фиксированное время",
- "modeRolling": "Скользящие 24ч",
- "retry": "Повторить",
- "labels": {
- "limit5h": "5 часов",
- "limitDaily": "Ежедневно",
- "limitWeekly": "Еженедельно",
- "limitMonthly": "Месячный лимит",
- "limitTotal": "Всего",
- "limitSessions": "Одновременно"
- }
- },
- "quickRenew": {
- "title": "Быстрое продление",
- "description": "Установить новую дату истечения для пользователя {userName}",
- "currentExpiry": "Текущий срок",
- "neverExpires": "Бессрочно",
- "expired": "Истёк",
- "quickExtensionLabel": "Быстрое продление",
- "quickExtensionHint": "Продлить от текущего срока (или от сейчас, если истёк)",
- "customDateLabel": "Указать дату",
- "customDateHint": "Напрямую указать дату истечения",
- "quickOptions": {
- "7days": "7 дней",
- "30days": "30 дней",
- "90days": "90 дней",
- "1year": "1 год"
- },
- "customDate": "Произвольная дата",
- "enableOnRenew": "Также включить пользователя",
- "enableKeyOnRenew": "Также включить ключ",
- "cancel": "Отмена",
- "confirm": "Подтвердить продление",
- "confirming": "Продление...",
- "success": "Продление успешно",
- "failed": "Ошибка продления"
- },
- "dialog": {
- "createKeyTitle": "Создать ключ",
- "editKeyTitle": "Редактировать ключ"
- },
- "editDialog": {
- "title": "Редактировать пользователя",
- "description": "Редактирование данных пользователя",
- "userSection": "Настройки пользователя",
- "keysSection": "Настройки ключей",
- "scrollToKey": "Прокрутить к ключу",
- "saveFailed": "Не удалось сохранить пользователя",
- "keySaveFailed": "Не удалось сохранить ключ",
- "keyDeleteFailed": "Не удалось удалить ключ",
- "saveSuccess": "Изменения сохранены",
- "atLeastOneKeyEnabled": "Необходимо оставить хотя бы один активный ключ",
- "operationFailed": "Операция не удалась",
- "userDisabled": "Пользователь отключен",
- "userEnabled": "Пользователь активирован",
- "deleteFailed": "Не удалось удалить пользователя",
- "userDeleted": "Пользователь удален",
- "saving": "Сохранение...",
- "resetData": {
- "title": "Сброс статистики",
- "description": "Удалить все логи запросов и данные использования для этого пользователя. Это действие необратимо.",
- "error": "Не удалось сбросить данные",
- "button": "Сбросить статистику",
- "confirmTitle": "Сбросить всю статистику?",
- "confirmDescription": "Это навсегда удалит все логи запросов и статистику использования для этого пользователя. Это действие нельзя отменить.",
- "confirm": "Да, сбросить все",
- "loading": "Сброс...",
- "success": "Вся статистика сброшена"
- }
- },
- "batchEdit": {
- "enterMode": "Массовое редактирование",
- "exitMode": "Выйти",
- "selectAll": "Выбрать все",
- "selectedCount": "Выбрано {users} пользователей, {keys} ключей",
- "editSelected": "Редактировать выбранное",
- "dialog": {
- "title": "Массовое редактирование",
- "description": "Повлияет на {users} пользователей и {keys} ключей",
- "cancel": "Отмена",
- "next": "Далее",
- "noFieldEnabled": "Включите хотя бы одно поле для замены",
- "noUpdate": "Нет обновлений для выполнения",
- "noSelection": "Сначала выберите пользователей или ключи для массового редактирования."
- },
- "confirm": {
- "title": "Подтвердить массовое обновление",
- "description": "Будут обновлены {users} пользователей и {keys} ключей. Это действие нельзя отменить.",
- "userFields": "Поля пользователя",
- "keyFields": "Поля ключа",
- "goBack": "Вернуться и изменить",
- "update": "Подтвердить обновление",
- "updating": "Обновление..."
- },
- "toast": {
- "usersUpdated": "Обновлено {count} пользователей",
- "keysUpdated": "Обновлено {count} ключей",
- "usersFailed": "Не удалось обновить пользователей: {error}",
- "keysFailed": "Не удалось обновить ключи: {error}",
- "batchFailed": "Массовое обновление не удалось"
- },
- "validation": {
- "invalidNumber": "Введите корректное число",
- "negativeNumber": "Значение не может быть отрицательным"
- },
- "aria": {
- "selectUser": "Выбрать пользователя",
- "selectKey": "Выбрать ключ"
- },
- "user": {
- "title": "Настройки пользователя",
- "affected": "Повлияет на {count} пользователей",
- "enableFieldAria": "Включить поле: {title}",
- "fields": {
- "note": "Заметка",
- "tags": "Теги",
- "rpm": "Лимит RPM",
- "limit5h": "Лимит за 5 часов (USD)",
- "limitDaily": "Дневной лимит (USD)",
- "limitWeekly": "Недельный лимит (USD)",
- "limitMonthly": "Месячный лимит (USD)"
- },
- "placeholders": {
- "emptyToClear": "Оставьте пустым, чтобы очистить",
- "tagsPlaceholder": "Нажмите Enter, чтобы добавить, можно разделять запятыми",
- "emptyNoLimit": "Оставьте пустым для безлимита"
- }
- },
- "key": {
- "title": "Настройки ключа",
- "affected": "Повлияет на {count} ключей",
- "fields": {
- "providerGroup": "Группа (providerGroup)",
- "limit5h": "Лимит за 5 часов (USD)",
- "limitDaily": "Дневной лимит (USD)",
- "limitWeekly": "Недельный лимит (USD)",
- "limitMonthly": "Месячный лимит (USD)",
- "canLoginWebUi": "Независимая страница использования",
- "keyEnabled": "Статус ключа"
- },
- "placeholders": {
- "groupPlaceholder": "Оставьте пустым, чтобы очистить; несколько значений через запятую",
- "emptyNoLimit": "Оставьте пустым для безлимита"
- },
- "targetValue": "Целевое значение"
- }
- },
- "createDialog": {
- "title": "Создать пользователя",
- "description": "Создание нового пользователя и настройка API-ключей",
- "saveFailed": "Не удалось создать пользователя",
- "keyCreateFailed": "Не удалось создать ключ",
- "rollbackFailed": "Не удалось выполнить откат. Возможно, пользователь был создан без ключа. Удалите пользователя вручную (userId: {userId}) и повторите попытку.",
- "createSuccess": "Пользователь создан",
- "successTitle": "Успешно создано",
- "successDescription": "Пользователь и ключ успешно созданы",
- "generatedKey": "Сгенерированный ключ",
- "keyHint": "Вы можете управлять этим ключом на странице управления пользователями (включить/выключить, лимиты и т. д.), но полный ключ показывается только один раз. Скопируйте и сохраните его сейчас.",
- "keysSection": "Ключи",
- "addKey": "Добавить ключ",
- "removeKey": "Удалить ключ",
- "cannotDeleteLastKey": "Нельзя удалить последний ключ",
- "confirmRemoveKeyTitle": "Удалить ключ",
- "confirmRemoveKeyDescription": "Вы уверены, что хотите удалить ключ \"{name}\"?",
- "creating": "Создание...",
- "create": "Создать"
- },
- "limitRules": {
- "addRule": "Добавить правило лимита",
- "title": "Добавить правило лимита",
- "description": "Выберите тип лимита и установите значение",
- "cancel": "Отмена",
- "confirm": "Сохранить",
- "fields": {
- "type": {
- "label": "Тип лимита",
- "placeholder": "Выберите"
- },
- "value": {
- "label": "Значение",
- "placeholder": "Введите"
- }
- },
- "daily": {
- "mode": {
- "label": "Режим дневного сброса",
- "fixed": "Сброс в фиксированное время",
- "rolling": "Скользящее окно (24ч)",
- "helperRolling": "Скользящее окно 24 часа от первого запроса"
- },
- "time": {
- "label": "Время сброса",
- "placeholder": "ЧЧ:мм"
- }
- },
- "limitTypes": {
- "limitRpm": "Лимит RPM",
- "limit5h": "Лимит за 5 часов",
- "limitDaily": "Дневной лимит",
- "limitWeekly": "Недельный лимит",
- "limitMonthly": "Месячный лимит",
- "limitTotal": "Общий лимит",
- "limitSessions": "Одновременные сессии"
- },
- "ruleTypes": {
- "limitRpm": "Лимит RPM",
- "limit5h": "Лимит за 5 часов",
- "limitDaily": "Дневной лимит",
- "limitWeekly": "Недельный лимит",
- "limitMonthly": "Месячный лимит",
- "limitTotal": "Общий лимит",
- "limitSessions": "Одновременные сессии"
- },
- "errors": {
- "missingType": "Пожалуйста, выберите тип лимита",
- "invalidValue": "Пожалуйста, введите корректное значение",
- "invalidTime": "Пожалуйста, введите корректное время (ЧЧ:мм)"
- },
- "overwriteHint": "Этот тип уже существует, сохранение перезапишет существующее значение",
- "dailyMode": {
- "fixed": "Сброс по фиксированному времени",
- "rolling": "Скользящее окно (24ч)"
- },
- "quickValues": {
- "unlimited": "Без ограничений",
- "10": "$10",
- "50": "$50",
- "100": "$100",
- "500": "$500"
- },
- "alreadySet": "Уже настроено",
- "confirmAdd": "Добавить"
- },
- "quickExpire": {
- "oneWeek": "Через неделю",
- "oneMonth": "Через месяц",
- "threeMonths": "Через 3 месяца",
- "oneYear": "Через год"
- },
- "providerGroupSelect": {
- "providersSuffix": "провайдеров",
- "loadFailed": "Не удалось загрузить группы провайдеров"
- },
- "providerGroup": {
- "label": "Группа провайдеров",
- "placeholder": "Выберите группу провайдеров",
- "noRestriction": "Без ограничений (все провайдеры)",
- "providerCount": "{count} провайдеров"
- },
- "dangerZone": {
- "title": "Опасная зона",
- "description": "Следующие действия необратимы, действуйте с осторожностью",
- "enable": {
- "title": "Включить пользователя",
- "description": "После включения этот пользователь и его ключи возобновят нормальную работу",
- "trigger": "Включить",
- "confirm": "Подтвердить включение",
- "confirmDescription": "Вы уверены, что хотите включить пользователя \"{userName}\"?",
- "loading": "Обработка..."
- },
- "disable": {
- "title": "Отключить пользователя",
- "description": "После отключения этот пользователь и его ключи больше не будут работать",
- "trigger": "Отключить",
- "confirm": "Подтвердить отключение",
- "confirmDescription": "Вы уверены, что хотите отключить пользователя \"{userName}\"?",
- "loading": "Обработка..."
- },
- "delete": {
- "title": "Удалить пользователя",
- "description": "Это удалит все связанные данные для этого пользователя, это действие необратимо",
- "trigger": "Удалить",
- "confirm": "Подтвердить удаление",
- "confirmDescription": "Это действие удалит все связанные данные пользователя \"{userName}\" и не может быть отменено.",
- "confirmLabel": "Вторичное подтверждение",
- "confirmHint": "Пожалуйста, введите \"{userName}\" для подтверждения удаления",
- "loading": "Удаление..."
- },
- "actions": {
- "cancel": "Отмена"
- },
- "errors": {
- "enableFailed": "Не удалось включить пользователя, попробуйте позже",
- "disableFailed": "Не удалось отключить пользователя, попробуйте позже",
- "deleteFailed": "Не удалось удалить пользователя, попробуйте позже"
- }
- },
- "limitIndicator": {
- "notSet": "Не задано",
- "unlimited": "Без ограничений"
- },
- "keySettings": {
- "balanceQueryPage": {
- "label": "Включить отдельную страницу проверки баланса",
- "description": "Разрешить пользователю просматривать баланс на отдельной странице",
- "descriptionEnabled": "При включении этот ключ будет использовать независимую страницу личного использования при входе. Однако он не может изменять группу провайдеров собственного ключа.",
- "descriptionDisabled": "При отключении пользователь не сможет получить доступ к странице личного использования. Вместо этого будет использоваться ограниченный Web UI."
- },
- "cacheTtlOverride": {
- "label": "Переопределение Cache TTL",
- "inherit": "Не переопределять (следовать провайдеру/клиенту)",
- "5m": "5 минут",
- "1h": "1 час"
- }
- },
- "pagination": {
- "previous": "Предыдущая",
- "next": "Следующая",
- "page": "Страница {current}",
- "of": "из {total}"
- },
- "toolbar": {
- "expandAll": "Развернуть все",
- "collapseAll": "Свернуть все"
- },
- "keyStatus": {
- "enabled": "Включён",
- "disabled": "Отключён",
- "active": "Активен",
- "expired": "Истёк",
- "expiringSoon": "Скоро истечёт",
- "keyEnabled": "Ключ включён",
- "keyDisabled": "Ключ отключён",
- "toggleKeyStatus": "Переключить статус ключа",
- "clickToDisableKey": "Нажмите, чтобы отключить ключ",
- "clickToEnableKey": "Нажмите, чтобы включить ключ",
- "operationFailed": "Операция не удалась",
- "clickToQuickRenew": "Нажмите для быстрого продления"
- },
- "userStatus": {
- "enabled": "Включён",
- "disabled": "Отключён",
- "active": "Активен",
- "expired": "Истёк",
- "expiringSoon": "Скоро истечёт",
- "userEnabled": "Пользователь включён",
- "userDisabled": "Пользователь отключён",
- "toggleUserStatus": "Переключить статус пользователя",
- "clickToDisableUser": "Нажмите, чтобы отключить пользователя",
- "clickToEnableUser": "Нажмите, чтобы включить пользователя",
- "operationFailed": "Операция не удалась",
- "deleteFailed": "Не удалось удалить",
- "deleteSuccess": "Удаление успешно",
- "daysLeft": "{days, plural, =0 {Истекает сегодня} =1 {Остался 1 день} few {Осталось # дня} many {Осталось # дней} other {Осталось # дней}}"
- },
- "userEditSection": {
- "sections": {
- "basicInfo": "Основная информация",
- "expireTime": "Срок действия",
- "limitRules": "Правила лимитов",
- "accessRestrictions": "Ограничения доступа"
- },
- "fields": {
- "username": {
- "label": "Имя пользователя",
- "placeholder": "Введите имя пользователя"
- },
- "description": {
- "label": "Заметка",
- "placeholder": "Введите заметку (необязательно)",
- "description": "Используется для описания назначения пользователя или примечаний"
- },
- "tags": {
- "label": "Теги пользователя",
- "placeholder": "Введите тег (Enter для добавления)"
- },
- "providerGroup": {
- "label": "Группа провайдеров",
- "placeholder": "default"
- },
- "allowedClients": {
- "label": "Ограничения клиентов",
- "description": "Ограничьте, какие CLI/IDE клиенты могут использовать эту учетную запись. Пусто = без ограничений.",
- "customLabel": "Пользовательские шаблоны клиентов",
- "customPlaceholder": "Введите шаблон (например, 'xcode', 'my-ide')"
- },
- "allowedModels": {
- "label": "Ограничения моделей",
- "placeholder": "Введите название модели или выберите из списка",
- "description": "Ограничить AI модели для пользователя. Пусто = без ограничений."
- },
- "enableStatus": {
- "label": "Статус включения",
- "enabledDescription": "Сейчас включён. При отключении пользователь и его ключи станут недоступны.",
- "disabledDescription": "Сейчас отключён. При включении пользователь и его ключи станут доступны.",
- "confirmDisable": "Подтвердить отключение",
- "confirmEnable": "Подтвердить включение",
- "confirmEnableTitle": "Подтвердить включение пользователя",
- "confirmDisableTitle": "Подтвердить отключение пользователя",
- "confirmEnableDescription": "Включение позволит пользователю и его ключам работать в обычном режиме.",
- "confirmDisableDescription": "Отключение сделает пользователя и его ключи недоступными.",
- "cancel": "Отмена",
- "processing": "Обработка..."
- }
- },
- "presetClients": {
- "claude-cli": "Claude Code CLI",
- "gemini-cli": "Gemini CLI",
- "factory-cli": "Droid CLI",
- "codex-cli": "Codex CLI"
- }
- },
- "keyEditSection": {
- "sections": {
- "basicInfo": "Основная информация",
- "expireTime": "Срок действия",
- "limitRules": "Правила лимитов",
- "specialFeatures": "Специальные функции"
- },
- "fields": {
- "keyName": {
- "label": "Название ключа",
- "placeholder": "Введите название ключа"
- },
- "enableStatus": {
- "label": "Статус включения",
- "description": "Отключённые ключи не могут использоваться",
- "cannotDisableTooltip": "Невозможно отключить последний активный ключ"
- },
- "balanceQueryPage": {
- "label": "Независимая страница использования",
- "description": "При включении этот ключ может использовать независимую страницу личного использования",
- "descriptionEnabled": "При включении этот ключ будет использовать независимую страницу личного использования при входе. Однако он не может изменять группу провайдеров собственного ключа.",
- "descriptionDisabled": "При отключении пользователь не сможет получить доступ к странице личного использования. Вместо этого будет использоваться ограниченный Web UI."
- },
- "providerGroup": {
- "label": "Группа провайдеров",
- "placeholder": "По умолчанию: default",
- "selectHint": "Выберите группы провайдеров, доступные для этого ключа",
- "editHint": "Группа провайдеров существующего ключа не может быть изменена",
- "allGroups": "Использовать все группы",
- "noGroupHint": "default включает провайдеров без groupTag."
- },
- "cacheTtl": {
- "label": "Переопределение Cache TTL",
- "description": "Принудительно установить Anthropic prompt cache TTL для запросов с cache_control.",
- "options": {
- "inherit": "Не переопределять (следовать провайдеру/клиенту)",
- "5m": "5m",
- "1h": "1h"
- }
- }
- },
- "limitRules": {
- "title": "Добавить правило лимита",
- "actions": {
- "add": "Добавить правило",
- "remove": "Удалить"
- },
- "daily": {
- "mode": {
- "fixed": "Сброс в фиксированное время",
- "rolling": "Скользящее окно (24ч)"
- }
- },
- "overwriteHint": "Этот тип уже существует, сохранение перезапишет существующее значение"
- },
- "accessRestrictions": {
- "title": "Ограничения доступа",
- "models": "Разрешённые модели",
- "clients": "Разрешённые клиенты",
- "noRestrictions": "Без ограничений",
- "inheritedFromUser": "Унаследовано от настроек пользователя"
- }
- }
- },
- "webhookMigration": {
- "title": "Обновление системы Webhook",
- "description": "Мы запустили новую систему уведомлений Webhook с поддержкой многоцелевой доставки, независимой настройки и улучшенной надежности.",
- "step1": {
- "title": "Обнаружена устаревшая конфигурация Webhook",
- "description": "Система обнаружила, что вы используете устаревшую конфигурацию Webhook. Новая система предлагает более мощные функции, рекомендуем выполнить миграцию."
- },
- "step2": {
- "title": "Выберите тип платформы",
- "description": "Следующие URL-адреса Webhook не удалось автоматически идентифицировать. Пожалуйста, выберите платформу вручную:"
- },
- "platformOptions": {
- "wechat": "WeChat Work",
- "feishu": "Feishu",
- "dingtalk": "DingTalk",
- "telegram": "Telegram",
- "custom": "Пользовательский"
- },
- "migrateButton": "Начать миграцию",
- "skipButton": "Позже",
- "nextButton": "Далее",
- "goToSettingsButton": "Перейти к настройкам",
- "migrating": "Миграция...",
- "success": "Миграция завершена",
- "successDescription": "Ваша конфигурация Webhook успешно перенесена в новую систему.",
- "error": "Ошибка миграции",
- "errorGeneric": "Не удалось выполнить миграцию. Пожалуйста, попробуйте позже.",
- "detectedWebhooks": "Обнаруженные Webhook",
- "notificationTypes": {
- "circuit_breaker": "Оповещение о размыкателе цепи",
- "daily_leaderboard": "Ежедневный рейтинг",
- "cost_alert": "Оповещение о стоимости"
- },
- "urlLabel": "URL Webhook",
- "platformLabel": "Тип платформы",
- "autoDetected": "Автоматически определено",
- "selectPlatform": "Выберите платформу",
- "successStats": "Создано {targets} целей, {bindings} привязок"
- }
- }
|