provider-chain.json 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. {
  2. "circuit": {
  3. "closed": "Закрыт (Нормально)",
  4. "halfOpen": "Полуоткрыт (Тестирование)",
  5. "open": "Открыт (Сработал)",
  6. "unknown": "Неизвестно"
  7. },
  8. "errors": {
  9. "ENOTFOUND": "Не удалось разрешить DNS",
  10. "ECONNREFUSED": "Соединение отклонено",
  11. "ETIMEDOUT": "Тайм-аут соединения или чтения",
  12. "ECONNRESET": "Соединение сброшено",
  13. "EHOSTUNREACH": "Хост недоступен (проблема маршрутизации сети)",
  14. "ENETUNREACH": "Сеть недоступна (проблема локальной сетевой конфигурации)",
  15. "EPROTO": "Ошибка протокола (ошибка SSL/TLS рукопожатия)",
  16. "CLIENT_ABORT": "Клиент прервал запрос",
  17. "PROVIDER_TIMEOUT": "Тайм-аут ответа провайдера (высокая задержка первого байта)",
  18. "STREAMING_IDLE_TIMEOUT": "Тайм-аут простоя потоковой передачи (провайдер прекратил отправку данных)"
  19. },
  20. "summary": {
  21. "singleSuccess": "{total} провайдеров, {healthy} работоспособных → {provider} ✓",
  22. "sessionReuse": "Повторное использование сессии → {provider} ✓"
  23. },
  24. "description": {
  25. "noDecisionRecord": "Нет записей решений",
  26. "sessionReuse": "Повторное использование сессии - Выбор провайдера",
  27. "sessionId": "ID сессии: {id}",
  28. "unknown": "Неизвестно",
  29. "reuseProvider": "Повторно используемый провайдер: {provider}",
  30. "initialSelection": "Первоначальный выбор: {provider}",
  31. "candidateCount": "{count} провайдеров-кандидатов",
  32. "groupFiltered": "Группа {group} отфильтрована до {count}",
  33. "healthyCount": "{count} после проверки состояния",
  34. "priority": "Приоритет {priority}",
  35. "candidate": "{name}({probability}%)",
  36. "requestChain": "Цепочка запросов:",
  37. "systemError": "Системная ошибка",
  38. "concurrentLimit": "Лимит параллельных запросов",
  39. "http2Fallback": "Откат HTTP/2",
  40. "clientError": "Ошибка клиента"
  41. },
  42. "reasons": {
  43. "request_success": "Успешно",
  44. "retry_success": "Повтор успешен",
  45. "retry_failed": "Повтор не удался",
  46. "system_error": "Системная ошибка",
  47. "client_error_non_retryable": "Ошибка клиента",
  48. "concurrent_limit_failed": "Лимит параллельных запросов",
  49. "http2_fallback": "Откат HTTP/2",
  50. "session_reuse": "Повторное использование сессии",
  51. "initial_selection": "Первоначальный выбор"
  52. },
  53. "filterReasons": {
  54. "rate_limited": "Ограничение скорости",
  55. "circuit_open": "Автомат открыт",
  56. "disabled": "Отключен",
  57. "excluded": "Исключен",
  58. "format_type_mismatch": "Несоответствие формата",
  59. "type_mismatch": "Несоответствие типа",
  60. "model_not_allowed": "Модель не разрешена",
  61. "context_1m_disabled": "1M контекст отключен",
  62. "model_not_supported": "Модель не поддерживается",
  63. "group_mismatch": "Несоответствие группы",
  64. "health_check_failed": "Проверка состояния не пройдена"
  65. },
  66. "details": {
  67. "selectionMethod": "Метод выбора",
  68. "attemptNumber": "Номер попытки",
  69. "endpoint": "Конечная точка",
  70. "config": "Конфигурация",
  71. "priority": "Приоритет",
  72. "weight": "Вес",
  73. "costMultiplier": "Множитель стоимости",
  74. "groupTag": "Тег группы",
  75. "circuitBreaker": "Автомат защиты",
  76. "circuitDisabled": "Отключен",
  77. "failures": "ошибок",
  78. "modelRedirect": "Перенаправление модели",
  79. "error": "Ошибка",
  80. "errorDetails": "Детали ошибки",
  81. "decisionContext": "Контекст решения",
  82. "beforeHealthCheck": "До проверки состояния",
  83. "afterHealthCheck": "После проверки состояния",
  84. "filteredProviders": "Отфильтрованные провайдеры",
  85. "priorityLevels": "Уровни приоритета",
  86. "candidates": "Кандидаты провайдеров"
  87. },
  88. "technicalTimeline": "Техническая временная шкала",
  89. "timeline": {
  90. "sessionReuse": "Повторное использование сессии",
  91. "sessionReuseSelection": "Повторное использование сессии - Выбор провайдера",
  92. "sessionReuseTitle": "Повторное использование сессии - Выбор провайдера",
  93. "sessionId": "ID сессии: {id}",
  94. "reuseProvider": "Повторно используемый провайдер: {provider}",
  95. "configuration": "Конфигурация",
  96. "priority": "Приоритет",
  97. "weight": "Вес",
  98. "cost": "Стоимость",
  99. "providerConfig": "Конфигурация провайдера: приоритет={priority} вес={weight} стоимость={cost}",
  100. "basedOnCache": "Повторное использование провайдера на основе кеша сессии (в течение 5 минут)",
  101. "sessionCache": "На основе кеша сессии (в течение 5 минут)",
  102. "waitingForResult": "Ожидание результата запроса...",
  103. "waiting": "Ожидание результата запроса...",
  104. "initialSelection": "Первоначальный выбор провайдера",
  105. "initialSelectionTitle": "Первоначальный выбор провайдера",
  106. "systemStatus": "Состояние системы",
  107. "totalProviders": "Всего провайдеров: {count}",
  108. "enabledProviders": "Включено типа {type}: {count}",
  109. "type": "Тип",
  110. "userGroup": "Группа пользователей {group}: {count}",
  111. "healthCheck": "Прошли проверку состояния: {count}",
  112. "filtered": "Отфильтровано",
  113. "priorityLevel": "Приоритет",
  114. "priorityCandidates": "Кандидаты приоритета {priority} ({count})",
  115. "candidates": "Кандидаты",
  116. "candidateInfo": " • {name}: вес={weight} стоимость={cost} вероятность={probability}%",
  117. "selected": "✓ Выбрано: {provider}",
  118. "requestFailed": "Запрос не выполнен (Попытка {attempt})",
  119. "attemptNumber": "Попытка {number}",
  120. "firstAttempt": "Первая попытка",
  121. "nthAttempt": "Попытка {attempt}",
  122. "provider": "Провайдер: {provider}",
  123. "statusCode": "Код состояния: {code}",
  124. "error": "Ошибка: {error}",
  125. "requestDuration": "Длительность запроса: {duration}мс",
  126. "requestDurationSeconds": "Длительность запроса: {duration}с",
  127. "circuitStatus": "Состояние автомата",
  128. "current": "Текущее",
  129. "circuitCurrent": "Текущее состояние: {state}",
  130. "failureCount": "Количество сбоев: {current}/{threshold}",
  131. "untilBreak": "До срабатывания",
  132. "circuitRemaining": "{remaining} попыток до срабатывания автомата",
  133. "remaining": "Осталось попыток: {count}",
  134. "status": "Состояние",
  135. "alreadyBroken": "Уже сработал",
  136. "circuitTriggered": "Предупреждение: Автомат защиты сработал",
  137. "circuitDisabled": "Автомат защиты отключен",
  138. "errorDetails": "Детали ошибки",
  139. "systemError": "Системная ошибка",
  140. "systemErrorFailed": "Системная ошибка (Попытка {attempt})",
  141. "errorType": "Тип ошибки: Системная ошибка",
  142. "errorName": "Ошибка",
  143. "errorCode": "Код ошибки: {code}",
  144. "errorSyscall": "Системный вызов: {syscall}",
  145. "errorMeaning": "Значение: {meaning}",
  146. "meaning": "Значение",
  147. "notCountedInCircuit": "Эта ошибка не учитывается в автомате защиты провайдера",
  148. "systemErrorNote": "Примечание: Эта ошибка не учитывается в автомате защиты провайдера",
  149. "reselection": "Повторный выбор провайдера",
  150. "reselect": "Повторный выбор провайдера",
  151. "excluded": "Исключено: {providers}",
  152. "remainingCandidates": "Оставшиеся кандидаты: {count}",
  153. "requestSuccess": "{label} Запрос выполнен",
  154. "requestSuccessAttempt": "{attempt} Запрос выполнен",
  155. "requestOk": "OK",
  156. "successStatus": "Состояние: {code} OK",
  157. "requestCompleted": "Запрос успешно выполнен",
  158. "completed": "Запрос успешно выполнен",
  159. "concurrentLimitFailed": "Лимит параллельных запросов",
  160. "attemptFailed": "Попытка не удалась (Попытка {attempt})",
  161. "concurrentLimit": "Лимит параллельных запросов",
  162. "concurrentLimitInfo": "Текущих параллельных: {current}/{limit}",
  163. "sessions": "Сессии",
  164. "withPriorityWeight": "(приоритет={priority} вес={weight})",
  165. "unknown": "Неизвестно",
  166. "noDecisionRecord": "Нет записей решений",
  167. "modelRedirect": "Перенаправление модели",
  168. "modelRedirectFrom": " Запрошенная модель: {model}",
  169. "modelRedirectTo": " Перенаправлено на: {model}",
  170. "modelRedirectBilling": " Модель для расчета: {model}",
  171. "http2Fallback": "Откат протокола HTTP/2",
  172. "http2ErrorType": "Тип ошибки HTTP/2: {type}",
  173. "http2FallbackNote": "Прозрачный откат на HTTP/1.1, не учитывается в автомате защиты",
  174. "requestDetails": "Детали запроса (для отладки)",
  175. "requestMethod": "Метод",
  176. "requestUrl": "URL",
  177. "requestHeaders": "Заголовки",
  178. "requestBody": "Тело",
  179. "requestBodyTruncated": "(обрезано)",
  180. "clientErrorNonRetryable": "Ошибка клиента (попытка {attempt}, без повторов)",
  181. "matchedRule": "Совпавшее правило ошибки",
  182. "ruleId": "ID правила: {id}",
  183. "ruleCategory": "Категория: {category}",
  184. "rulePattern": "Шаблон: {pattern}",
  185. "ruleMatchType": "Тип совпадения: {matchType}",
  186. "ruleDescription": "Описание: {description}",
  187. "ruleHasOverride": "Переопределения: response={response}, statusCode={statusCode}",
  188. "clientErrorNote": "Эта ошибка вызвана вводом клиента, не повторяется и не учитывается в автомате защиты."
  189. }
  190. }