@kern0x1b/penstock-cli 26.10.3 → 26.10.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/licensing.json +1 -1
  2. package/dist/penstock.js +458 -197
  3. package/dist/web/assets/{AgentSettings-C-1YBic4.js → AgentSettings-BvzT4Itb.js} +1 -1
  4. package/dist/web/assets/{AgentsDialog-CSu8pyh7.js → AgentsDialog-BqY3wKcV.js} +1 -1
  5. package/dist/web/assets/BpmnCanvas-BTdM1l9l.js +1905 -0
  6. package/dist/web/assets/BpmnDocument-uifU3NGG.js +24 -0
  7. package/dist/web/assets/{ConflictDialog-nygfF7Dn.js → ConflictDialog-C4A9-Psr.js} +1 -1
  8. package/dist/web/assets/{DiffDocument-DUrje9io.js → DiffDocument-BMTSevd7.js} +1 -1
  9. package/dist/web/assets/{DmnDocument-fn7AH7P1.js → DmnDocument-B8wWuhfX.js} +9 -9
  10. package/dist/web/assets/{FormDocument-BbyRqjib.js → FormDocument-bQ5VRsrh.js} +1 -1
  11. package/dist/web/assets/{FormStepView-BYRMBW0U.js → FormStepView-DbMCFSO1.js} +1 -1
  12. package/dist/web/assets/{GraphAwareLayoutService-BiLVDmB7.js → GraphAwareLayoutService-CePcz6pL.js} +1 -1
  13. package/dist/web/assets/NewFileDialog-DsoFURD9.js +47 -0
  14. package/dist/web/assets/{QuickOpen-D-u9hdSt.js → QuickOpen-mzlfRqvG.js} +1 -1
  15. package/dist/web/assets/{ScriptPane-BQorfmyv.js → ScriptPane-C9q5wLfO.js} +2 -2
  16. package/dist/web/assets/{ScriptRunDialog-DjBW0LRD.js → ScriptRunDialog-Dm-_0H1Z.js} +1 -1
  17. package/dist/web/assets/{SettingsDialog-DvYUAKpH.js → SettingsDialog-Bhwwtyg7.js} +1 -1
  18. package/dist/web/assets/{ShortcutsDialog-BQ5BYHj3.js → ShortcutsDialog-BXP0h7Tp.js} +1 -1
  19. package/dist/web/assets/{SourceDocument-BfHVXxuk.js → SourceDocument-DgrNCprS.js} +1 -1
  20. package/dist/web/assets/{TextDocument-BPepqeGu.js → TextDocument-D8N0uaQa.js} +1 -1
  21. package/dist/web/assets/{UnreadableFileLayer-D5B6nixz.js → UnreadableFileLayer-D2Rcxnt7.js} +1 -1
  22. package/dist/web/assets/{UploadDialog-BzIvQ1YS.js → UploadDialog-Dinga4TP.js} +1 -1
  23. package/dist/web/assets/apply-CzXxiRWK.js +1 -0
  24. package/dist/web/assets/{bpmnTheme-Divwrkjy.js → bpmnTheme-db4tYvop.js} +1 -1
  25. package/dist/web/assets/bridgeInstance-BPwbITOf.js +850 -0
  26. package/dist/web/assets/{commands-N2yKHjf_.js → commands-BAnBjEk3.js} +1 -1
  27. package/dist/web/assets/de-Cd75cvcZ.js +1 -0
  28. package/dist/web/assets/{dialog-DSf66Ory.js → dialog-KVjfqSrB.js} +1 -1
  29. package/dist/web/assets/{diff-DkfgVbKD.js → diff-Cw0ENHJR.js} +1 -1
  30. package/dist/web/assets/{documentBridge-DSWBQZRP.js → documentBridge-D5SaBThP.js} +8 -8
  31. package/dist/web/assets/{documents-C4vr2KnQ.js → documents-Dkor36oS.js} +1 -1
  32. package/dist/web/assets/{duplicate-C-AiqE1T.js → duplicate-ud-StKuO.js} +1 -1
  33. package/dist/web/assets/{engines-DG8KgTeX.js → engines-BQRXHtW8.js} +1 -1
  34. package/dist/web/assets/es-D2PUEg_Z.js +1 -0
  35. package/dist/web/assets/{formChecks-B_ZFz9DR.js → formChecks-DFrCuO4I.js} +1 -1
  36. package/dist/web/assets/fr-DkGYGarc.js +1 -0
  37. package/dist/web/assets/{frontend-BLfXy4OQ.js → frontend-B05iyhCp.js} +1 -1
  38. package/dist/web/assets/{httpHost-Cll6HteE.js → httpHost-DX-P_FDg.js} +1 -1
  39. package/dist/web/assets/{index.es-DQAdm_u9.js → index.es-DR-czZl7.js} +1 -1
  40. package/dist/web/assets/{index.es-B0wi5_fv.js → index.es-dFUgH_-g.js} +1 -1
  41. package/dist/web/assets/{intelligence-glU4hcHy.js → intelligence-BkxcJMU_.js} +1 -1
  42. package/dist/web/assets/ja-De4NAvK-.js +1 -0
  43. package/dist/web/assets/{jspdf.es.min-xdeBAA_m.js → jspdf.es.min-BMfOi0te.js} +3 -3
  44. package/dist/web/assets/ko-Ci27KQ5n.js +1 -0
  45. package/dist/web/assets/{lib-DJ1i09sd.js → lib-C3uYnGWx.js} +1 -1
  46. package/dist/web/assets/{engine-BPUfS3r2.js → moddle-CGpeSs3G.js} +1 -1
  47. package/dist/web/assets/{platform-BS7bgwr3.js → platform-zEAtGnYc.js} +1 -1
  48. package/dist/web/assets/preferences-K6VRM9Ah.js +1 -0
  49. package/dist/web/assets/pt-BR-CNmIseZJ.js +1 -0
  50. package/dist/web/assets/ru-BtK7W4xW.js +1 -0
  51. package/dist/web/assets/{run-Df8AD_as.js → run-fV7AmV4q.js} +1 -1
  52. package/dist/web/assets/{samples-chRLnLcq.js → samples-D-3Bquy_.js} +1 -1
  53. package/dist/web/assets/testCaseRuns-C-0blM3d.js +1 -0
  54. package/dist/web/assets/translator-Dvvasoz-.js +1 -0
  55. package/dist/web/assets/{ui-AICOEtWR.js → ui-TBzvKaKQ.js} +1 -1
  56. package/dist/web/assets/{useTrace-B3gDUL0X.js → useTrace-BgpeAcQR.js} +1 -1
  57. package/dist/web/assets/{web-BtxFF0jJ.js → web-qJCedJJw.js} +8 -8
  58. package/dist/web/assets/zh-DxI_A5kC.js +1 -0
  59. package/dist/web/index.html +20 -20
  60. package/package.json +4 -1
  61. package/dist/web/assets/BpmnCanvas-DnBLxMNQ.js +0 -1905
  62. package/dist/web/assets/BpmnDocument-BPpyqTzJ.js +0 -24
  63. package/dist/web/assets/NewFileDialog-Ce_cTeOv.js +0 -34
  64. package/dist/web/assets/apply-B0vauBJn.js +0 -1
  65. package/dist/web/assets/bridgeInstance-D0bzpNGz.js +0 -600
  66. package/dist/web/assets/de-izeWpfua.js +0 -1
  67. package/dist/web/assets/es-CRMYEYWD.js +0 -1
  68. package/dist/web/assets/fr-8pTyPyAI.js +0 -1
  69. package/dist/web/assets/ja-I1fjeFMy.js +0 -1
  70. package/dist/web/assets/ko-CFd9C-RA.js +0 -1
  71. package/dist/web/assets/preferences-C_EXTz45.js +0 -1
  72. package/dist/web/assets/pt-BR-Dl_APu95.js +0 -1
  73. package/dist/web/assets/ru-_vhcOTod.js +0 -1
  74. package/dist/web/assets/testCaseRuns-DLEqANBi.js +0 -1
  75. package/dist/web/assets/translator-CS9eR0My.js +0 -1
  76. package/dist/web/assets/zh-Do_q1RZ2.js +0 -1
@@ -0,0 +1 @@
1
+ var e=JSON.parse('{"name":"Penstock","common":{"loading":"Загрузка…","learnMore":"Подробнее","close":"Закрыть","optional":" (необязательно)","add":"Добавить","back":"Назад","cancel":"Отмена","checkAgain":"Проверить ещё раз","code":"Код","comments":"Комментарии","copy":"Копировать","delete":"Удалить","done":"Готово","engine":"Движок","export":"Экспорт","monitor":"Мониторинг","next":"Далее","open":"Открыть","overview":"Обзор","paste":"Вставить","problems":"Проблемы","properties":"Свойства","recheck":"Перепроверить","redo":"Повторить","reload":"Перезагрузить","remove":"Убрать","retry":"Повторить","save":"Сохранить","scenarios":"Сценарии","search":"Поиск","showAll":"Показать все","skip":"Пропустить","stop":"Остановить","undo":"Отменить","variables":"Переменные","more":"+ ещё {number}","copyCommand":"Скопировать команду","commandCopied":"Скопировано"},"config":{"problem":{"syntaxWhy":"файл не прочитан как YAML - {reason}.","typeOfFile":"в файле должны быть {expected}, а там {found}.","type":"{key} должно быть {expected}, а это {found}.","unknownKey":"Penstock не знает настройки {key}, она не используется.","insteadStopped":"Пока файл не исправлен, из него ничего не читается.","insteadIde":"Пока файл не прочитан, Penstock берёт настройки из IDE."},"brokenTitle":"Не удалось прочитать {0}","reason":{"nestedMapping":"одно значение вложено в значение на той же строке","duplicateKey":"одна и та же настройка записана дважды","tabIndentation":"в отступе стоит табуляция вместо пробелов","implicitKey":"настройка записана в той же строке, что и предыдущая","unclosed":"файл обрывается посреди значения"},"expect":{"text":"текстом","flag":"истиной или ложью","number":"числом","list":"списком текстов","section":"разделом настроек","freeSection":"разделом настроек","oneOf":"одно из: {values}"},"found":{"text":"текст","flag":"истина или ложь","number":"число","list":"список","section":"раздел","nothing":"ничего"},"file":{"readsInstead":"Penstock читает этот файл вместо настроек IDE.","overrides":"penstock.yaml в подпапке перекрывает этот для диаграмм под ней.","templatesFrom":"Папки, из которых читаются шаблоны элементов Camunda:","secretsStay":"Пароли и секреты остаются в хранилище паролей IDE, а не здесь."},"local":{"writtenBy":"Записано Penstock для этой машины. Держите файл вне системы контроля версий.","valuesWin":"Значения здесь важнее penstock.yaml; удалите ключ, чтобы вернуться к ответу проекта.","gitignore":"Penstock, только эта машина","wrapperWhichPenstock":"На каком Penstock работает этот проект. Файл коммитится, и все запускают один и тот же.","wrapperChangeVersion":"Смените версию руками или выполните: ./penstockw update [version]"}},"palette":{"label":"Палитра команд","search":"Найти действие…","hint":"Стрелки - перемещение, Enter - выполнить, Shift+Enter - закрепить на панели или открепить, Escape - закрыть","actions":"Действия","matches":{"one":"{count} действие","other":"{count} действия","few":"{count} действия","many":"{count} действий"},"noMatch":"Нет действия по запросу \\"{query}\\"","pin":"Закрепить на панели","unpin":"Открепить от панели"},"export":{"title":"Экспорт диаграммы","diagram":"Диаграмма","mainDiagram":"Основная диаграмма","theme":"Тема","themeLight":"Светлая","themeDark":"Тёмная","themeDracula":"Dracula","schema":"Схема","schemaDefault":"По умолчанию","schemaSketchy":"Набросок","format":"Формат","background":"Использовать фон","cancel":"Отмена","copy":"Копировать","export":"Экспорт","exporting":"Экспорт...","copyTitle":"Копировать картинку с этими настройками в PNG","previewFailed":"Не удалось показать предварительный вид диаграммы","copyFailed":"Не удалось скопировать картинку","notLoaded":"Не удалось экспортировать: предварительный вид диаграммы не загрузился","unnamedSubprocess":"Безымянный подпроцесс","asFormat":"Экспортировать как {format}","untitledFile":"диаграмма"},"cli":{"noDiagrams":"Файлы .bpmn не найдены в {paths}.","wrote":"записано {file}","nothingWritten":"Ничего не записано.","nothingChanged":"Ничего не изменено.","notAGitRepository":"Это не репозиторий git, поэтому сравнивать не с чем.","header":{"status":"СТАТУС","endpoint":"АДРЕС","files":"ФАЙЛЫ","file":"ФАЙЛ","details":"ПОДРОБНОСТИ","worker":"ВОРКЕР","name":"ИМЯ","id":"ID","version":"ВЕРСИЯ","type":"ТИП","engine":"ДВИЖОК","property":"СВОЙСТВО","value":"ЗНАЧЕНИЕ","action":"ДЕЙСТВИЕ","target":"ЦЕЛЬ","flow":"ПОТОК","testCases":"ТЕСТ-КЕЙСЫ","testClass":"ТЕСТ-КЛАСС","process":"ПРОЦЕСС","scenarios":"СЦЕНАРИИ","severity":"СЕРЬЁЗНОСТЬ","content":"СОДЕРЖИМОЕ"},"trust":{"hookRefused":"хук {stage}: не выполнен, потому что {root} не доверенный проект","notTrusted":"проект не доверенный, поэтому penstock.yaml не может выполнять здесь команды оболочки","runTrust":"выполните один раз penstock trust в этом проекте, чтобы разрешить это, или передайте --trust-project только для текущего запуска","questionNotTrusted":"{root} не доверенный проект.","questionPower":"penstock.yaml может выполнять любые команды оболочки в этой папке от вашего имени.","questionAllow":"Разрешить здесь и навсегда? [y/N] ","questionInIt":"penstock.yaml в нём может выполнять любые команды оболочки в той папке от вашего имени.","questionTrust":"Доверять ему на этой машине? [y/N] ","once":"разрешено только для этого запуска флагом --trust-project","saidNo":"Нет, поэтому из penstock.yaml ничего не выполнялось.","nowTrusted":"penstock.yaml может выполнять здесь команды оболочки сейчас и навсегда","trustedThere":"penstock.yaml может выполнять там команды оболочки","nothingToTrust":"в нём нет penstock.yaml, поэтому доверять нечему","nothingToTrustHint":"ничего не записано. Выполните penstock init, чтобы записать его, или penstock trust в папке проекта","forgetHint":"penstock trust --forget убирает прежнюю запись","alreadyTrusted":"он уже доверенный","notTrustedYet":"ничего не записано, проект всё ещё не доверенный","noneTrusted":"На этой машине нет доверенных проектов.","headerProject":"ДОВЕРЕННЫЙ ПРОЕКТ","headerSince":"КОГДА","mayNotRun":"penstock.yaml не может выполнять там команды оболочки","notTrustedBefore":"он не был доверенным"},"templates":{"noWorker":"Воркер заданий не найден: Penstock читает @JobWorker и @ExternalTaskSubscription в файлах .java, .kt, .kts, .groovy и .scala.","template":"ШАБЛОН","workerIn":"{value} в {file}:{line}","workerInHandler":"{value} в {file}:{line}, обработчик {handler}","inputs":"ВХОДЫ","action":{"written":"записан","updated":"обновлён","unchanged":"без изменений"},"writtenFor":"Шаблоны элементов для воркеров заданий этого проекта, в .camunda/element-templates.","nothingToWrite":"Записывать нечего: каждый шаблон уже описывает, что делает воркер.","summary":"записано: {written}, обновлено: {updated}. Запустите modeler или перезагрузите редактор, чтобы увидеть их.","noneToCheck":"В папке {folder} нет шаблонов элементов: проверять нечего.","allMatch":"Каждый шаблон элемента по-прежнему соответствует воркеру, из которого он записан.","drifted":"Шаблоны больше не соответствуют воркеру: {templates}","asksFor":"запрашивает {name}, которого воркер не читает","hasExtra":"содержит {name}, который воркер больше не читает","hasOtherType":"содержит {name} другого типа","fixHint":"Выполните penstock templates generate, чтобы вернуть их в соответствие.","usage":"Используйте templates generate, чтобы записать шаблоны элементов, или templates --check, чтобы завершиться с ошибкой, когда шаблон больше не соответствует своему воркеру.","count":{"template":{"one":"{count} шаблон","other":"{count} шаблона","few":"{count} шаблона","many":"{count} шаблонов"},"elementTemplate":{"one":"{count} шаблон элемента","other":"{count} шаблона элемента","few":"{count} шаблона элемента","many":"{count} шаблонов элемента"}}},"connectors":{"notInside":"Это не путь внутри каталога коннекторов: {path}","linkAt":"В каталоге коннекторов по пути {path} находится ссылка","holdsALink":"В каталоге коннекторов находится ссылка","fileInTheWay":"На пути находится файл","tooLarge":"Файл больше 64 МБ","contentTooLarge":"Содержимое больше 64 МБ","directoryInTheWay":"На пути находится каталог","nothingToMove":"Перемещать нечего","destinationExists":"Назначение уже существует","notACatalogueUrl":"Это не URL каталога коннекторов: {url}","githubUnreachable":"Не удалось обратиться к GitHub","redirect":"GitHub ответил перенаправлением, оно не обрабатывается","responseTooLarge":"Ответ больше 64 МБ","interrupted":"Загрузка прервана","listOnly":"Только list может указывать сам каталог коннекторов","renameNeedsTarget":"Для переименования нужно назначение","unknownOperation":"Неизвестная операция: {operation}","downloadFailed":"Не удалось загрузить шаблоны коннекторов: {reason}.{when} выполните `penstock connectors --refresh`, чтобы попробовать сейчас.","unknownReason":"причина неизвестна","retriedAfter":" Автоматическая повторная попытка через {when};","usingOlder":"Используются шаблоны, загруженные для {ref}; проверить наличие новой версии не удалось: {reason}","resolveUsage":"Использование: penstock connectors resolve <id> [version]","notAVersion":"Это не версия шаблона: {version}","idVersion":"{id}, версия {version}","noTemplate":"В каталоге для {ref} нет шаблона {which}","cacheMissing":"Нет кэшированного файла для {id}; выполните `penstock connectors --refresh`","summary":"Шаблоны коннекторов для {ref}: {current} актуальных, {older} с устаревшими версиями"},"update":{"npmFailed":"Не удалось установить {package} через npm","noCli":"В {package} не оказалось Penstock CLI","noWrapper":"Здесь и выше нет обёртки Penstock. Выполните: penstock init","noLatest":"Не удалось найти последнюю версию {package}. Укажите версию: penstockw update 2.5.0","downloadFailed":"Не удалось загрузить Penstock {version}: {reason}","alreadyPinned":"Penstock {version}, уже закреплённая версия","moved":"Penstock {from} -> {to}","none":"(нет)","downloaded":"загружено {version} в {home}","alreadyDownloaded":"{version} уже загружена","droppedDistribution":"удалён дистрибутив distribution={distribution}; в нём была версия {version}","commit":"Зафиксируйте {scripts} и {properties}."},"license":{"notInteractive":"Чтобы войти, нужен терминал, где можно ответить. В конвейере вместо этого задайте PENSTOCK_LICENSE значением вашего лицензионного ключа.","codeOnItsWay":"Код для входа уже отправлен на {email}.","codeQuestion":"Код из письма: ","emailQuestion":"Почта, с которой вы купили Penstock: ","nothingChangedAgain":"Ничего не изменено. Выполните penstock license login, чтобы повторить.","tooManyMachines":"Ваша лицензия {tier} используется на {machines} машинах, а это ровно столько, сколько она допускает:","since":", с {when}","freeWhich":"Какую освободить для этой машины? (номер или Enter, чтобы остановиться) ","noneBought":"Лицензия Penstock, купленная на {email}, не найдена.","buyOrSignIn":"Купите лицензию командой penstock license buy или войдите с адресом, на котором её покупали.","activeHere":"Penstock {tier} активна на этой машине{again}. Редактор в вашей IDE использует её тоже.","activeHerePlain":"Penstock {tier} активна на этой машине.","again":" снова","buyUsage":"penstock license buy [pro|team]","alreadyActive":"Penstock {tier} уже активна на этой машине.","checkoutOpen":"Страница оплаты Penstock {tier} открыта в вашем браузере:","waitingForPayment":"Ожидание оплаты, как только она пройдёт, всё завершится само.","paidEmailQuestion":"Почта, с которой вы оплатили: ","paid":"Оплата прошла, спасибо.","paymentFailed":"Оплата не прошла, списания не было. Выполните penstock license buy, чтобы повторить.","checkoutExpired":"Страница оплаты истекла. Выполните penstock license buy, чтобы открыть новую.","stoppedWaiting":"Ожидание остановлено. Если оплата всё же прошла, выполните penstock license login.","released":"Лицензия освобождена на этой машине, её можно использовать на другой.","cleared":"На этой машине не было места, которое можно освободить; файл лицензии очищен.","nothingToRelease":"На этой машине нет лицензии, которую можно освободить, либо не удалось обратиться к службе лицензий.","trial":"Ключа пока нет: на этой машине идёт пробный период Pro, осталось {left}, до {ends}.","running":"работает","keyComesWithPurchase":"Ключ выдаётся при покупке: penstock license buy, либо penstock license login, если вы уже купили Penstock.","enterAKey":"Чтобы ввести имеющийся ключ, выполните penstock license activate <key>.","noneOnThisMachine":"На этой машине нет лицензии{trial}. Сначала войдите: penstock license login","trialEnded":", и пробный период Pro закончился {ends}","orBuyOne":"Или купите лицензию: penstock license buy. Чтобы ввести имеющийся ключ, выполните penstock license activate <key>.","teamOnly":"В конвейере работает только ключ Penstock Team, а лицензия, купленная на этот адрес, — Pro.","buyTeam":"Купите Team командой penstock license buy team.","keepKeySecret":"Храните ключ как секрет. В конвейере задайте его как PENSTOCK_LICENSE; он не занимает отдельную машину, а для платных возможностей нужен ключ Team.","activateUsage":"penstock license activate <key> или вход без ключа: penstock license login","buyAndSignIn":"penstock license buy купить Pro penstock license login уже куплено","usage":"penstock license [status|key|activate <key>|deactivate]","serviceUnreachable":"Не удалось обратиться к службе лицензий: {reason}","tierRow":"тариф","statusRow":"состояние"},"drawing":{"unknownPathCommand":"команда пути {command} не распознана","incomplete":"изображение будет неполным: {reason}","nothingToDraw":"на диаграмме нечего рисовать"},"bot":{"noRepository":"{names} не задана. Рабочий процесс, запускающий бота, должен выполняться в репозитории, а GITHUB_REPOSITORY задаёт его имя.","noToken":"{names} не задана. По умолчанию используется токен рабочего процесса: выдайте задаче issues: write и pull-requests: write. Собственный токен положите в секрет PENSTOCK_TOKEN.","noEventPath":"{names} не задана. Рабочий процесс должен передать GITHUB_EVENT_PATH или запустить бота как действие.","noGitLabApi":"{names} не задана. GitLab задаёт её в каждом задании, а запуск вне GitLab не может ответить на комментарий.","noGitLabToken":"{names} не задана. Добавьте переменную CI/CD PENSTOCK_TOKEN: токен доступа к проекту с ролью Developer и областью api (Settings, CI/CD, Variables).","noGitLabProject":"{names} не задана. Данные вебхука содержат идентификатор проекта, и каждое задание GitLab задаёт CI_PROJECT_ID.","noBitbucketRepo":"{names} не задана. Конвейер должен запускаться по событию pull request, которое её задаёт.","noBitbucketPr":"{names} не задана. Конвейер должен запускаться по событию pull request, которое её задаёт.","noBitbucketToken":"{names} не задана. Добавьте переменную репозитория PENSTOCK_TOKEN: токен доступа к репозиторию с правом записи в pull request (Repository settings, Access tokens, Create token) и разрешите конвейерам его использовать.","noBitbucketBranch":"{names} не задана. Её задаёт событие pull request.","noAzureCollection":"{names} не задана. Конвейер должен запускаться по pull request, который её задаёт.","noAzureProject":"{names} не задана. Конвейер должен выполняться в проекте, который её задаёт.","noAzureRepository":"{names} не задана. Конвейер должен запускаться по pull request, который её задаёт.","noAzurePullRequest":"{names} не задана. Конвейер должен запускаться по pull request, который её задаёт.","noAzureToken":"{names} не задана. Задайте SYSTEM_ACCESSTOKEN значением $(System.AccessToken) и разрешите сборке добавлять комментарии к pull request (Project settings, Repositories, Security, allow scripts to access the OAuth token) либо задайте секрет PENSTOCK_TOKEN.","noAzureBranch":"{names} не задана. Её задаёт событие pull request.","notAGitCheckout":"Бот работает в рабочей копии git.","unknownCi":"Это не похоже на CI-запуск, известный penstock: GitHub, Gitea, Forgejo, GitLab, Bitbucket или Azure DevOps.","nothingToAnswer":"Отвечать не на что.","nothingDrawn":"Ничего не нарисовано, поэтому отправлять нечего.","answeredOn":"ответил на {platform}","refusedSaved":"отказался и сохранил ответ для этапа post","notForPenstock":"Комментарий был не для penstock.","couldNotCheckOut":"Не удалось получить {ref}.","baseNotFound":"Не удалось найти базу {base}.","drew":"нарисовал {file}","answerSaved":"сохранил ответ для этапа post","unknownStage":"Неизвестный этап: {stage}. Используйте draw или post.","count":{"element":{"one":"{count} элемент","other":"{count} элемента","few":"{count} элемента","many":"{count} элементов"}},"elementsNotDrawn":"{elements} не нарисованы, и редактор их тоже не может нарисовать - {ids}","theFork":"форк {head}","aForkNoLongerExists":"форк, которого больше нет","fromAnotherFork":"Этот pull request приходит из {head}, а не из {base}, поэтому бот его не получил и ничего из него не выполнял. Отправьте ветку в {base}, и бот ответит там.","noPictureBecause":"{file}: рисунка нет, потому что {reason}. Рисунок, который может оказаться неверным, не показывается.","picturesInArtifacts":"Изображения — в артефактах этой сборки.","sayWhatToCompareWith":"Скажите, с чем сравнивать: `/penstock diff <коммит, ветка или тег>`.","couldNotFindRef":"Не нашёл `{ref}` в этом репозитории.","diagramsChangedSince":"## Диаграммы, изменённые с `{ref}`","noDiagramChangedHere":"Здесь ни одна диаграмма не изменилась.","cleanAgainstTheBaseline":"Проблем нет. Рисунок соответствует базовой линии.","noDiagramToDraw":"Рисовать нечего. Назовите диаграмму: `/penstock image path/to/process.bpmn`.","notInThisChange":"`{file}` нет в этом изменении.","drawnButNotShown":"Нарисовано, но здесь не показано: {files}. [{open}]({link}).","openThem":"открыть","couldNotDoThat":"Не получилось: {reason}","help":{"intro":"Я читаю диаграммы в этом изменении. Спросите меня в комментарии:","report":"- `/penstock` - полный разбор: проблемы, что изменилось, рисунки","check":"- `/penstock check` - только проблемы","diff":"- `/penstock diff <коммит, ветка или тег>` - что изменилось с тех пор, изменения отмечены на рисунке","image":"- `/penstock image [путь.bpmn]` - рисунок диаграммы в том виде, в каком она сейчас"}},"hook":{"exited":"завершился с кодом {code}"},"hooks":{"skipped":"хуки - это не репозиторий git","keptOther":"он уже делает что-то другое","wrote":"форматирует и проверяет диаграммы, которые несёт коммит"},"doctor":{"buildEngine":"сборка использует библиотеки {build}, а в penstock.yaml указано {engine}","reachable":"доступен ({status})","answered":"ответил {status}","unreachable":"недоступен - {reason}","noConfig":"не найдено - выполните: penstock init","noEngine":"не задан - без него редактор не может выбрать палитру","noProfiles":"(нет)","missing":"отсутствует: {path}","noUrl":"url не задан","deployment":"{url} - {state}","variablesNeedPro":"{mode}, нужен Penstock Pro"},"export":{"unknownFormat":"Неизвестный формат экспорта: {format}. Используйте svg или png.","needsBrowser":"Для PNG нужен браузер, чтобы отрисовать SVG, а penstock его не содержит. SVG ничего не требует.","installBrowser":"Установите его один раз, в проекте или глобально:","notDrawn":" не нарисовано, как в редакторе: {element}"},"convert":{"targetMissing":"укажите, во что преобразовать: --to operaton","unknownTarget":"--to принимает только operaton, движок, в который преобразуются диаграммы Camunda 7 и CIB seven; указано {target}","unchanged":"уже в пространстве имён Operaton или не диаграмма Camunda 7","wouldChange":"переименовало бы camunda: в operaton: (чтобы сохранить, добавьте --write)","changed":"имена camunda: переименованы в operaton:"},"fmt":{"alreadyFormatted":"уже отформатировано","formattedXml":"отформатирован XML","wouldFormat":"будет отформатирован XML (передайте --write, чтобы сохранить)","formLeftAlone":"форма записана в JSON, а fmt переписывает только XML, поэтому она остаётся как есть"},"diff":{"baseNotFound":"Не удалось найти базу {base}. Укажите коммит, ветку или тег, которые есть в этой рабочей копии.","noDifference":"Ни одна диаграмма не отличается от {base}.","baseIsPath":"{base} — это файл, а не коммит, ветка или тег. Чтобы сравнить два файла, укажите оба файла: penstock diff <до> <после>.","newSince":"{file} - новая с {base}","picture":"изображение {file}","noPicture":"нет изображения: {reason}","before":"до {file}","after":"после {file}","noPictures":"нет изображений: {reason}","added":"добавлена","removed":"удалена","changed":"изменена","onlyMoved":"Изменилось только положение на холсте ({elements}).","noDifferenceFound":"Различий нет.","movedOnCanvas":"и {elements} изменили только положение на холсте","count":{"element":{"one":"{count} элемент","other":"{count} элемента","few":"{count} элемента","many":"{count} элементов"}}},"report":{"baseNotFound":"Не удалось найти базу {base}. Передайте --base коммит, ветку или тег, которые есть в этой рабочей копии.","heading":"## Диаграммы в этом изменении","nothingChanged":"Ни одна диаграмма не изменилась.","removed":"### Удалено","check":"### Проверка","cleanAgainstTheBaseline":"Ничего нового. Рисунок соответствует базовой линии.","whatChanged":"### Что изменилось","newFile":"новая","onlyTheDrawingMoved":"Изменился только рисунок.","howItLooks":"### Как это выглядит","thePicturesLink":"Изображения с отмеченными изменениями: [открыть]({link}).","noPictures":"_На этот раз без изображений._","outlined":"_Изменения обведены: зелёным отмечено новое, жёлтым — отличившееся._"},"share":{"needsDiagram":"для share нужна диаграмма: penstock share process.bpmn -o process.html","notADiagram":"{file} не файл .bpmn, .dmn или .form, поэтому делиться нечем.","offline":"Один файл, открывается в любом браузере без сети; ничего в нём не обращается к сети."},"import":{"needsFile":"для import нужен файл: penstock import diagram.drawio -o process.bpmn","missing":"{file} не существует.","exists":"{file} уже существует. Ничего не записано; укажите другое имя через -o или замените файл флагом --force.","routes":"Маршруты коннекторов оставлены как нарисованы; Автораскладка (Pro) может их упорядочить: penstock layout {file} --write"},"docs":{"format":"docs пишет --format html (по умолчанию), md, docx или pdf.","pdfFont":"{file}: на этом компьютере не нашлось шрифта с этими символами, поэтому в PDF они показаны как ?: {characters}","writtenSummary":"записано {pages}{because}","count":{"step":{"one":"{count} шаг","other":"{count} шага","few":"{count} шага","many":"{count} шагов"},"problem":{"one":"{count} проблема","other":"{count} проблемы","few":"{count} проблемы","many":"{count} проблем"},"page":{"one":"{count} страница","other":"{count} страницы","few":"{count} страницы","many":"{count} страниц"},"process":{"one":"{count} процесс","other":"{count} процесса","few":"{count} процесса","many":"{count} процессов"},"decision":{"one":"{count} решение","other":"{count} решения","few":"{count} решения","many":"{count} решений"},"form":{"one":"{count} форма","other":"{count} формы","few":"{count} формы","many":"{count} форм"},"field":{"one":"{count} поле","other":"{count} поля","few":"{count} поля","many":"{count} полей"}},"check":"Проверка","step":"Шаг","runs":"Исполнитель","who":"Кто","form":"Форма","way":"Путь","goesTo":"Ведёт к","when":"Когда","events":"События","event":"Событие","trigger":"Триггер","data":"Данные","variable":"Переменная","size":"Размер","allDiagrams":"Все диаграммы","diagramsOf":"Диаграммы: {project}","everyPathEnds":"Каждый путь по процессу заканчивается событием: нет тупиков, ничего не выполняется дважды, всё достижимо.","runsToItsEnd":"доходит до конца","noTwoRulesMatch":"Никакие два правила не подходят под одни и те же входные данные, и для каждого входа есть правило.","everyInputHasOneRule":"у каждого входа есть правило","everyFieldHasItsOwn":"у каждого поля своя переменная"},"migrate":{"ready":"готово","converts":"конвертируется","needsWork":"требует работы","blocked":"заблокировано","unknownTarget":"Неизвестная целевая версия {target}. Версии Camunda 8, для которых конвертирует Penstock: {versions}.","baselineWritten":"записано {file} с {findings}","nothingToMigrate":"Мигрировать нечего: не найдено ни диаграммы, ни решения, ни формы Camunda 7.","toDo":"{count} сделать","toCheck":"{count} проверить","convert":"{count} к конвертации","headerTodo":"СДЕЛАТЬ","headerToCheck":"ПРОВЕРИТЬ","headerConvert":"К КОНВЕРТАЦИИ","andMore":"и ещё {count}","totals":"К миграции на Camunda {target}: {files}, из них {ready} готово, {converts} к конвертации, {needsWork} требуют работы, {blocked} заблокировано.","newAndAccepted":"{fresh} новых, {known} принято","nothingNew":"новых нет, {known} принято","instancesStay":"Работающие экземпляры и история остаются на Camunda 7, пока не завершатся или не будут перенесены Data Migrator. Команда penstock migrate report записывает всё это в страницу, которую можно передать дальше.","unreadable":"прочитать не удалось","leftOpen":"{changes}, {open} остаётся открытым","wouldWrite":"будет записано {file}: {reason}","staysOpen":"остаётся открытым:","alreadyThere":"{file} уже есть и не перезаписан","left":"осталось: {where}: {title}. {action}","nothingToConvert":"Конвертировать нечего: {reason}.","notCamunda7":{"one":"{files} не является Camunda 7","other":"{files} не являются Camunda 7","few":"{files} не являются Camunda 7","many":"{files} не являются Camunda 7"},"noneFound":"не найдено ни диаграммы, ни решения, ни формы Camunda 7","dryRunFolder":"Конвертированные файлы попадут в {folder} со своим penstock.yaml, где engine: camunda-8. Передайте --out <dir>, чтобы положить их в другое место.","configKept":"{file} уже есть и оставлен без изменений.","configWritten":"записано {file} (engine: camunda-8), поэтому конвертированные файлы открываются и проверяются как Camunda 8. Задайте deployment.url вашего кластера Camunda 8.","camunda7Untouched":"Файлы Camunda 7 не изменены. Каждому типу заданий выше нужен воркер заданий, прежде чем что-то заработает. IDE записывает заготовку по каждому делегату; работающие экземпляры остаются на Camunda 7.","count":{"finding":{"one":"{count} проблема","other":"{count} проблемы","few":"{count} проблемы","many":"{count} проблем"},"file":{"one":"{count} файл","other":"{count} файла","few":"{count} файла","many":"{count} файлов"},"change":{"one":"{count} изменение","other":"{count} изменения","few":"{count} изменения","many":"{count} изменений"}},"wouldConvert":"конвертирует","converted":"сконвертирован"},"init":{"licenceHint":"бот, отчёты и базовые линии работают на Penstock Team: положите ключ из `penstock license key` в {where}","teamHint":"с Penstock Team в конвейере также доступны бот проверки, аннотации SARIF и базовые линии: `penstock license buy team`, затем выполните init ещё раз","githubWorkflowToken":"бот отвечает в pull request токеном рабочего процесса; регистрировать ничего не нужно","githubForks":"на pull request из форка бот не отвечает: ему пришлось бы запускать форк с токеном, который может писать в этот репозиторий","updateHint":"рабочий процесс запускает действие Penstock на фиксированном коммите, поэтому секрет лицензии не попадёт в код, изменившийся позже;","updateHow":"чтобы обновить его, найдите коммит командой `gh api repos/kern0x1b/penstock-release/commits/main --jq .sha` и измените ACTION_REF в CLI","secretLicence":"секрет PENSTOCK_LICENSE","giteaWorkflowToken":"бот отвечает токеном рабочего процесса или PENSTOCK_TOKEN, если тот задан","gitlabToken":"добавьте переменную CI/CD PENSTOCK_TOKEN: токен доступа к проекту, роль Developer, область api","gitlabWebhook":"чтобы отвечать на комментарии /penstock, добавьте вебхук с событиями Comments, указывающий на","gitlabTriggerIsSecret":"этот токен запуска нужно хранить как секрет: любой, у кого есть URL, может запускать конвейеры вашего проекта","gitlabKeepUrl":"держите URL только в настройках вебхука, никогда в зафиксированном файле, комментарии или общей ссылке, и смените его в Settings, Webhooks, если он попадёт в журнал задания","maskedLicence":"замаскированная переменная CI/CD PENSTOCK_LICENSE","bitbucketToken":"добавьте переменную репозитория PENSTOCK_TOKEN: токен доступа к репозиторию с правом записи в pull request","bitbucketTokenHow":"Repository settings, Access tokens, Create token и разрешить конвейерам его использовать","securedLicence":"защищённая переменная репозитория PENSTOCK_LICENSE","azureContribute":"разрешите службе сборки добавлять комментарии к pull request (Project settings → Repositories → Security)","azureToken":"конвейер уже задаёт SYSTEM_ACCESSTOKEN значением $(System.AccessToken); без настройки выше она остаётся пустой","azurePolicy":"для Azure Repos добавьте этот конвейер как политику ветки build validation","pipelineLicence":"секретная переменная конвейера PENSTOCK_LICENSE","engine":{"camunda8":"Camunda 8","camunda7":"Camunda 7","operaton":"Operaton","cibSeven":"CIB seven","classic":"Classic BPMN, без движка","flowable":"Flowable","activiti":"Activiti"},"engineQuestion":"На каком движке работает этот проект?","numberQuestion":"Номер [1]: ","gitignore":".gitignore с {entry}","unknownExample":"Неизвестный пример: {example}. Используйте {names} или {last}.","folderNotEmpty":"Папка {folder} не пуста. Пример записывается в пустую папку, поэтому он никогда не перезапишет ваши файлы.","exampleReadme":"README рядом с ними рассказывает, как его запустить","unknownEngine":"Неизвестный движок: {engine}. Используйте {names} или {last}.","configWhatItIs":"Что это за проект. Файл коммитится.","engineDoesNotFit":"Пример {example} работает на {label}, поэтому --engine {engine} ему не подходит. Опустите --engine или откажитесь от --example.","asTheExampleWroteIt":"как записал пример","alreadyAnswers":"он уже отвечает за этот проект","engineNotUsed":"--engine {engine} не использован: в {file} уже сказано {says}","whatItRunsOn":"на чём работает проект","includeFrom":"подключите его из .gitlab-ci.yml","mergeInto":"влейте его в bitbucket-pipelines.yml","unknownCi":"Неизвестный CI: {ci}. Используйте github, gitea, forgejo, gitlab, bitbucket или azure."},"edit":{"editorRefused":"редактор отказал: {reason}","operationFailed":"операция {number}: {message}","didNotReadBack":"Результат не прочитался обратно без ошибок, поэтому не записан.","changedWhileEditing":"Диаграмма изменилась во время правки, поэтому она не перезаписана.","nothingBroken":"ок ничего не сломано","breaksTheDrawing":"ошибка ломает рисунок: {problems}","readsLessWell":"заметка читается хуже: {things}","element":"Идентификатор элемента, как его перечисляет show_diagram.","dryRun":"\\nПробный запуск: {file} не изменён.","wouldBreak":"\\n{file} не изменён: правка сломала бы рисунок. Передайте --force, чтобы записать его всё равно.","mustLookLikePairs":"{where} \\"{entry}\\" должно иметь вид key=value","sayWhatToDo":"укажите, что сделать: add, connect, set или remove либо передайте --ops с операциями в формате JSON","unknownField":"неизвестное поле \\"{key}\\"; допустимые: {allowed}","mustBeAString":"\\"{field}\\" должно быть непустой строкой","mustBeAStringShort":"\\"{key}\\" должно быть строкой","propertiesMustBeAnObject":"\\"properties\\" должен быть объектом","notAnEngineProperty":"\\"{key}\\" не является свойством {engine}; допустимые: {allowed}","mustBeABoolean":"\\"{key}\\" должно быть true или false","mustBeAWholeNumber":"\\"{key}\\" должно быть целым числом","mustMapNamesToStrings":"\\"{key}\\" должно сопоставлять имена со строками","noOperations":"операции не заданы","mustBeAnObject":"должен быть объектом","elementMustBeOneOf":"\\"element\\" должно быть одним из {elements}","eventMustBeOneOf":"\\"event\\" должно быть одним из {events}","eventOnlyForEvents":"\\"event\\" применимо только к событиям","idMustBeValid":"\\"id\\" должно быть корректным идентификатором XML","opMustBeOneOf":"\\"op\\" должно быть add, connect, set, remove или move","property":{"name":"Подпись, которая показывается на элементе.","documentation":"Текст документации элемента.","condition":"Условное выражение потока управления, например ${approved}.","conditionSimple":"Условное выражение потока управления.","feelCondition":"Условие FEEL у потока управления, например =approved.","class":"Класс Java, который реализует задачу.","delegateExpression":"Выражение, которое даёт бин делегата, например ${reserveStock}.","expression":"Выражение, которое вычисляет задача.","resultVariable":"Куда попадает результат выражения.","topic":"Делает задачу внешним заданием с этой темой.","asyncBefore":"Начинает транзакцию перед элементом.","asyncAfter":"Начинает транзакцию после элемента.","assignee":"Кому назначена задача пользователя.","candidateUsers":"Пользователи через запятую, которые могут забрать задачу.","candidateGroups":"Группы через запятую, которые могут забрать задачу.","formKey":"Форма, которую показывает задача пользователя.","calledElement":"Процесс, который запускает действие вызова.","inputs":"Входные параметры: имя в значение или выражение.","outputs":"Выходные параметры: имя в значение или выражение.","jobType":"Тип задания, на который подписан воркер.","retries":"Сколько раз повторяется неудачное задание.","formId":"id связанной формы, которую показывает задача пользователя.","processId":"Процесс, который запускает действие вызова.","inputMappings":"Входные отображения: целевая переменная из источника FEEL.","outputMappings":"Выходные отображения: целевая переменная из источника FEEL.","decisionRef":"Решение, которое вызывает задача бизнес-правила.","decisionId":"Идентификатор решения, которое вызывает задача бизнес-правила.","async":"Выполняет элемент как отдельное задание в собственной транзакции.","skipExpression":"Выражение, которое при истинности заставляет движок пропустить задачу."},"schema":{"title":"Операции правки Penstock","titleFor":"Операции правки Penstock для {engine}","onlyOn":" Только для {types}.","add":"Добавить элемент после существующего; он ставится и соединяется так, как это делает редактор.","after":"id элемента, после которого идёт новый.","event":"Для событий: какого вида событие.","newId":"id, который ему дать; по умолчанию решает соглашение проекта.","connect":"Соединить два элемента потоком управления.","set":"Изменить свойства элемента или потока.","remove":"Удалить элемент и его соединения.","move":"Сдвинуть элемент на dx и dy в единицах диаграммы."},"noSuchElement":"элемента \\"{id}\\" нет","set":"задать {keys} у {id}","isTheRoot":"\\"{id}\\" — корень диаграммы","removed":"удалён {id}","isAConnection":"\\"{id}\\" — это связь; добавляйте после элемента","afterEndEvent":"после события завершения \\"{id}\\" ничего не может идти","addAfterAnElementInside":"\\"{id}\\" — это {type}; добавляйте после элемента внутри него","added":"добавлен {type} {id} после {after}","idTaken":"идентификатор \\"{id}\\" уже занят","noSequenceFlow":"поток управления не может идти из \\"{from}\\" в \\"{to}\\"","connect":"соединить {from} -> {to} как {id}","doesNotApply":"\\"{key}\\" неприменимо к {type} \\"{id}\\"","needsDiagram":"для edit нужна диаграмма: penstock edit process.bpmn add service-task --after Task_check","isAFolder":"{from} — папка, а не файл с операциями","notJson":"Операции в {from} не в формате JSON: {reason}","operationWhere":"операция {number}","count":{"newProblem":{"one":"{count} новая проблема","other":"{count} новые проблемы","few":"{count} новые проблемы","many":"{count} новых проблем"},"thing":{"one":"{count} вещь","other":"{count} вещи","few":"{count} вещи","many":"{count} вещей"}},"mustBeANumber":"\\"{field}\\" должно быть числом","moved":"{id} сдвинут на {dx}, {dy}"},"help":{"options":"Опции","example":"Пример","licence":"Лицензия","exitCodes":"Коды возврата","option":{"profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"},"init":{"summary":"Записывает penstock.yaml для этого проекта: движок, на котором он работает, правила, профили и развёртывание. Спрашивается в терминале, когда папка пуста и ничто другое не задаёт параметры.","licence":"Бесплатно.","exits":{"0":"0 файл записан","1":"1 не удалось записать папку или файл уже есть","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"engine":"camunda-8, camunda-7, operaton, cib-seven, flowable, activiti или classic","example":"camunda-8 или camunda-7, чтобы записать небольшой запускаемый проект в пустую папку","ci":"github, gitea, gitlab, bitbucket или azure: записать конвейер для того уровня, который есть на этой машине","hooks":"установить хук pre-commit, который форматирует и проверяет диаграммы в индексе","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"doctor":{"summary":"Проверяет настройку: какие слои конфигурации действуют, какие профили, правила, шаблоны элементов и движок.","licence":"Бесплатно.","exits":{"0":"0 настройка прочитана","1":"1 что-то в ней не прочитано, и ответ говорит о чём","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"format":"json печатает конфигурацию в том виде, в каком она получилась, чтобы её прочитал инструмент","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"check":{"summary":"Всё, что не так с диаграммами, по разделам: сам рисунок, правила bpmnlint и, в Pro, как на самом деле работают процессы, решения и формы.","licence":"Бесплатно. С этими возможностями она входит в Penstock Pro, а в конвейере — в Team:\\n --only flow анализ потоков, дедлоки и ветви, которые выполняются дважды\\n --baseline базовая линия уже принятых проблем\\n --format sarif|github проблемы в виде аннотаций на изменённых строках","exits":{"0":"0 ничего не найдено или всё найденное есть в базовой линии","1":"1 найдено то, с чем может разобраться человек","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"only":"какие части запускать: drawing, rules, flow","format":"text, json, sarif или github; sarif и github — для ревью кода","baseline":"завершаться с ошибкой только на тех проблемах, которых нет в базовой линии","updateBaseline":"записать текущие проблемы как базовую линию","trustProject":"разрешить penstock.yaml этого проекта выполнять свои хуки в текущем запуске, ничего не записывая","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"migrateAnalyze":{"summary":"Читает диаграммы Camunda 7 и говорит, что не переносится в Camunda 8 и почему.","licence":"Бесплатно. С этими возможностями она входит в Penstock Pro, а в конвейере — в Team:\\n --baseline базовая линия уже принятых проблем\\n --format sarif|github проблемы в виде аннотаций на изменённых строках","exits":{"0":"0 ничего не потеряется или всё потерянное есть в базовой линии","1":"1 что-то потеряется","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"format":"text, json, sarif или github","out":"куда записывается отчёт или конвертированные файлы","dryRun":"показать, что было бы записано, и ничего не записывать","target":"версия Camunda 8, для которой выполняется конвертация, по умолчанию 8.8","failOn":"что даёт код возврата 1: error или warning","baseline":"завершаться с ошибкой только на тех проблемах, которых нет в базовой линии","updateBaseline":"записать текущие проблемы как базовую линию","verbose":"перечислить и пометить то, что переносится как есть","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"migrateConvert":{"summary":"Записывает файлы Camunda 8 в папку camunda-8 рядом с указанной, со своим penstock.yaml. Больше ничего в проекте не изменяется.","licence":"Конвертация входит в Penstock Pro, а в конвейере — в Team. Чтение через migrate analyze и отчёт бесплатны.","exits":{"0":"0 файлы записаны или --dry-run не нашёл ничего для записи","1":"1 что-то не удалось конвертировать, и ответ говорит что","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"format":"text, json, sarif или github","out":"куда записывается отчёт или конвертированные файлы","dryRun":"показать, что было бы записано, и ничего не записывать","target":"версия Camunda 8, для которой выполняется конвертация, по умолчанию 8.8","failOn":"что даёт код возврата 1: error или warning","baseline":"завершаться с ошибкой только на тех проблемах, которых нет в базовой линии","updateBaseline":"записать текущие проблемы как базовую линию","verbose":"перечислить и пометить то, что переносится как есть","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"migrateReport":{"summary":"Записывает отчёт о миграции, который можно передать дальше: во что превратилась каждая диаграмма и что не перенеслось.","licence":"Бесплатно.","exits":{"0":"0 отчёт записан","1":"1 записать не удалось, и ответ говорит, куда он пытался","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"format":"text, json, sarif или github","out":"куда записывается отчёт или конвертированные файлы","dryRun":"показать, что было бы записано, и ничего не записывать","target":"версия Camunda 8, для которой выполняется конвертация, по умолчанию 8.8","failOn":"что даёт код возврата 1: error или warning","baseline":"завершаться с ошибкой только на тех проблемах, которых нет в базовой линии","updateBaseline":"записать текущие проблемы как базовую линию","verbose":"перечислить и пометить то, что переносится как есть","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"code":{"summary":"Проверяет диаграммы по коду: типы заданий, темы, классы и бины, которые никто не выполняет, и воркеры, которые не использует ни одна диаграмма.","licence":"Проверки диаграмм и кода входят в Penstock Pro, а в конвейере — в Team.","exits":{"0":"0 каждый воркер и каждая ссылка совпадают","1":"1 что-то не совпадает, и ответ называет что","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"format":"как выводятся проблемы","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"facts":{"summary":"Читает список файлов из стандартного ввода, в виде {\\"files\\": [{\\"path\\": \\"...\\", \\"text\\": \\"...\\"}]}, и выводит в JSON контракты воркеров, которые в них есть, чтобы редактор читал воркеры Python, Go, C# и Scala, которые сам прочитать не может.","licence":"Связи с кодом входят в Penstock Pro, а в конвейере — в Team.","exits":{"0":"0 контракты выведены","1":"1 вход не является списком файлов","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"}},"templatesGenerate":{"summary":"Записывает шаблон элемента для каждого воркера заданий проекта в .camunda/element-templates, чтобы палитра Camunda заполнялась сама.","licence":"Запись шаблонов элементов входит в Penstock Pro, а в конвейере — в Team.","exits":{"0":"0 у каждого воркера есть шаблон","1":"1 воркер записать не удалось, и ответ называет какой","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"check":"проверять вместо записи: то же, что templates check, и ничего не записывает","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"templatesCheck":{"summary":"Проверяет, что каждый шаблон элемента по-прежнему описывает, что запрашивает его воркер заданий, и что у каждого воркера есть шаблон. Ничего не записывает.","licence":"Бесплатно.","exits":{"0":"0 каждый шаблон по-прежнему соответствует своему воркеру","1":"1 шаблон разошёлся с воркером, и ответ говорит как","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"check":"опция templates generate, с которой вместо записи делается это","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"scenariosList":{"summary":"Перечисляет все различные пути по каждому процессу с условиями, которые их определяют. Это план тестирования.","licence":"Сценарии процессов входят в Penstock Pro, а в конвейере — в Team.","exits":{"0":"0 сценарии перечислены","1":"1 процесс не удалось прочитать, и ответ называет какой","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"format":"как перечисляются сценарии; md — страница для чтения человеком","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"scenariosRun":{"summary":"Выполняет файлы тест-кейсов Camunda диаграмм на указанном в них движке, по шагам, с теми имитаторами, которых требует файл.","licence":"Запуск процесса на движке входит в Penstock Pro, а в конвейере — в Team.","exits":{"0":"0 запуск завершился без упавших кейсов","1":"1 кейс упал или до движка не дошли","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём","130":"130 Ctrl-C дважды: кейс отменён, его сборка удалена, запуск остановлен"},"options":{"timeout":"сколько может длиться один шаг, по умолчанию 30","junitXml":"куда записывается отчёт JUnit XML","junit":"записать класс Camunda Process Test, который выполняет их вместо этого","teamcity":"выводить как служебные сообщения TeamCity, как их читает IDE","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"testCases":{"summary":"Команда, за которой стоят scenarios run и scenarios generate: запускает файлы тест-кейсов Camunda диаграмм на движке, который они указывают, по шагам, с имитаторами, которые требует файл. --generate вместо этого записывает эти файлы по путям каждого процесса.","licence":"Запуск процесса на движке и запись его файлов тест-кейсов входят в Penstock Pro, а в конвейере — в Team.","exits":{"0":"0 запуск завершился без упавших кейсов","1":"1 кейс упал или до движка не дошли","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём","130":"130 Ctrl-C дважды: кейс отменён, его сборка удалена, запуск остановлен"},"options":{"generate":"записывает файлы тест-кейсов по путям каждого процесса вместо того, чтобы запускать их","junit":"записать класс Camunda Process Test, который выполняет их вместо этого","junitXml":"куда записывается отчёт JUnit XML","timeout":"сколько может длиться один шаг, по умолчанию 30","teamcity":"выводить как служебные сообщения TeamCity, как их читает IDE"}},"scenariosGenerate":{"summary":"Записывает файлы тест-кейсов Camunda по путям каждого процесса, которые затем воспроизводит scenarios run на движке.","licence":"Запись файлов тест-кейсов входит в Penstock Pro, а в конвейере — в Team.","exits":{"0":"0 запуск завершился без упавших кейсов","1":"1 кейс упал или до движка не дошли","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём","130":"130 Ctrl-C дважды: кейс отменён, его сборка удалена, запуск остановлен"},"options":{"timeout":"сколько может длиться один шаг, по умолчанию 30","junitXml":"куда записывается отчёт JUnit XML","teamcity":"выводить как служебные сообщения TeamCity, как их читает IDE","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"junit":{"summary":"Записывает JUnit-тест для каждого пути по каждому процессу с переменными, которые туда ведут, для Camunda Process Test или camunda-bpm-assert.","licence":"Тесты процессов входят в Penstock Pro, а в конвейере — в Team.","exits":{"0":"0 тесты записаны","1":"1 тест записать не удалось, и ответ называет процесс","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"out":"куда записываются тесты","package":"пакет, в который записываются тесты","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"layout":{"summary":"Раскладывает диаграммы в читаемый поток слева направо, как бы они ни были нарисованы.","licence":"Автораскладка входит в Penstock Pro, а в конвейере — в Team.","exits":{"0":"0 диаграммы не перекрываются и ничего не проходит сквозь фигуру","1":"1 диаграмму не удалось разложить, и ответ говорит какую","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"write":"сохранить результат раскладки; без неё ответом будет план, а файл останется без изменений","trustProject":"разрешить penstock.yaml этого проекта выполнять свои хуки в текущем запуске, ничего не записывая","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"convert":{"summary":"Переносит диаграмму Camunda 7 или CIB seven в пространство имён Operaton, чтобы проект Operaton её читал. Без --write ответ — список, а файлы не меняются.","licence":"Бесплатно.","exits":{"0":"0 все диаграммы в пространстве имён Operaton или были переведены в него","1":"1 файл не удалось прочитать, и ответ называет его","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"to":"движок, в который преобразуются диаграммы; operaton — единственный","write":"сохраняет преобразованные диаграммы; без него ничего не записывается"}},"fmt":{"summary":"Перезаписывает XML так, как его сохраняет редактор, чтобы различие диаграмм оставалось читаемым.","licence":"Бесплатно.","exits":{"0":"0 каждый файл уже отформатирован или стал таким","1":"1 файл не удалось разобрать, и ответ называет какой","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"write":"сохранить результат; без неё ответом будет различие, а файл останется без изменений","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"diff":{"summary":"Что изменилось между двумя версиями процесса: между двумя файлами или в рабочей копии с момента коммита, ветки или тега.","licence":"Бесплатно. Изображения с --images входят в Penstock Pro, а в конвейере — в Team.","exits":{"0":"0 ничего не изменилось","1":"1 что-то изменилось, и ответ перечисляет это","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"images":"отрисовать до и после с подсветкой изменений","out":"куда записываются изображения","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"export":{"summary":"Отрисовывает диаграммы в изображения, по файлу на диаграмму.","licence":"Бесплатно.","exits":{"0":"0 все диаграммы записаны","1":"1 диаграмму не удалось отрисовать, и ответ называет какую","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"format":"svg или png; формат, в котором запрошен экспорт","out":"куда записываются изображения","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"share":{"summary":"Один HTML-файл для отправки: просмотрщик только для чтения с масштабированием, перемещением и документацией по каждому элементу. Он открывается без сети, и на странице ничего больше нет.","licence":"Бесплатно.","exits":{"0":"0 файл записан","1":"1 записать не удалось, и ответ говорит, куда он пытался","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"out":"файл для записи; -o то же самое","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"import":{"summary":"Превращает диаграмму draw.io, Visio, Signavio или Bizagi в BPMN 2.0 и перечисляет то, что не удалось сопоставить.","licence":"Бесплатно.","exits":{"0":"0 диаграмма записана","1":"1 что-то не удалось сопоставить, и ответ говорит о чём","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"out":"файл для записи; -o то же самое","force":"заменить уже существующий файл","format":"json выводит то, что не удалось сопоставить, в виде документа, который прочитает инструмент","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"docs":{"summary":"Пишет документацию по каждому процессу, файлу решений и форме: по странице с рисунком, шагами, решениями, событиями и данными.","licence":"Документация процессов входит в Penstock Pro, а в конвейере — в Team.","exits":{"0":"0 страницы записаны","1":"1 страницу записать не удалось, и ответ называет какую","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"format":"html, md, docx или pdf","out":"куда записываются страницы","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"report":{"summary":"Один markdown-комментарий для pull request: проверка, различие и изображение каждой изменившейся диаграммы.","licence":"Отчёты для pull request входят в Penstock Pro, а в конвейере — в Team.","exits":{"0":"0 отчёт записан","1":"1 записать не удалось, и ответ говорит, куда он пытался","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"base":"с чем сравнивает отчёт, по умолчанию origin/main","out":"куда записывается markdown","imagesDir":"куда записываются изображения","imageBase":"откуда будут отдаваться изображения для комментария, который их показывает","imagesLink":"где искать их вместо этого, когда их нельзя показать в сообщении","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"bot":{"summary":"Отвечает в pull или merge request из того CI-запуска, в котором он находится. Конвейер настраивает penstock init --ci.","licence":"Бот проверки входит в Penstock Pro, а в конвейере — в Team.","exits":{"0":"0 ответ отправлен или изображения нарисованы","1":"1 отправить не удалось, и ответ говорит почему","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"stage":"нарисовать изображения сейчас и отправить позже, когда они успеют загрузиться","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"deploy":{"summary":"Разворачивает процессы, решения и формы на движок, указанный в конфигурации.","licence":"Бесплатно.","exits":{"0":"0 движок принял развёртывание","1":"1 нет, и ответ приводит, что он ответил","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"dryRun":"показать, что было бы отправлено, и ничего не отправлять","wait":"подтвердить у движка, что определения вступили в силу","trustProject":"разрешить penstock.yaml этого проекта выполнять свои хуки в текущем запуске, ничего не записывая","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"show":{"summary":"Перечисляет элементы, потоки и свойства диаграммы, чтобы это мог прочитать человек или инструмент.","licence":"Бесплатно.","exits":{"0":"0 диаграмма прочитана","1":"1 это не диаграмма или её нет на месте, и ответ говорит что именно","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"format":"json — тот же документ, который читает инструмент","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"edit":{"summary":"Добавляет, соединяет, задаёт и удаляет в диаграмме так же, как редактор, и отказывает в правке, которая её сломала бы.","licence":"Правка из командной строки входит в Penstock Pro, а в конвейере — в Team. Чтение контракта через --schema бесплатно.","exits":{"0":"0 диаграмма изменена или --dry-run не нашёл ничего для изменения","1":"1 правка сломала бы диаграмму или её не удалось прочитать, и ничего не записано","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"ops":"операции в формате JSON в одну строку","opsFile":"операции в формате JSON в файле или - чтобы читать их из стандартного ввода","schema":"напечатать контракт, которому следуют операции, и ничего не изменять","after":"добавить после этого элемента, как редактор размещает новый","event":"добавляемый тип события","name":"имя добавляемого, соединяемого или задаваемого элемента","id":"идентификатор задаваемого или удаляемого элемента","condition":"условие соединяемого потока управления","set":"задаваемый атрибут, можно несколько раз","input":"сопоставление входов, можно несколько раз","output":"сопоставление выходов, можно несколько раз","dryRun":"показать, что изменится, и ничего не записывать","force":"записать, даже если правка сломала бы диаграмму","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"licenseStatus":{"summary":"Какая лицензия у этой машины и почему именно она.","licence":"Бесплатно.","exits":{"0":"0 ответ прочитан","1":"1 не удалось обратиться к службе лицензий, и машина осталась как была","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"licenseKey":{"summary":"Ключ для PENSTOCK_LICENSE в конвейере, который снова находится по почте покупки, потому что машина больше его не хранит.","licence":"Бесплатно.","exits":{"0":"0 ключ найден","1":"1 нет Team-ключа, купленного на этот адрес, или негде спросить в терминале","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"licenseBuy":{"summary":"Покупает Penstock. Страница оплаты открывается в браузере, и после оплаты лицензия сама попадает на эту машину.","licence":"Бесплатно.","exits":{"0":"0 лицензия на этой машине","1":"1 оплата не прошла или списания не было","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"licenseLogin":{"summary":"Вход с почтой, на которой вы купили Penstock. Ключ копировать не нужно.","licence":"Бесплатно.","exits":{"0":"0 лицензия на этой машине","1":"1 нет лицензии, купленной на этот адрес","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"licenseActivate":{"summary":"Использовать уже имеющийся ключ.","licence":"Бесплатно.","exits":{"0":"0 лицензия на этой машине","1":"1 ключ не принят, и ответ говорит почему","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"licenseLogout":{"summary":"Освобождает лицензию этой машины, чтобы её могла использовать другая. То же, что license deactivate.","licence":"Бесплатно.","exits":{"0":"0 лицензия освобождена или освобождать было нечего","1":"1 не удалось обратиться к службе лицензий","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"trust":{"summary":"Разрешает penstock.yaml этого проекта выполнять здесь команды оболочки. Хук check, layout или deploy сначала спрашивает об этом, а проект без penstock.yaml не доверен вовсе.","licence":"Бесплатно.","exits":{"0":"0 проект доверен, забыт или напечатан список","1":"1 там нет penstock.yaml, который можно доверять, или нет самого пути","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"list":"напечатать, что доверено на этой машине","forget":"забрать доверие у одного проекта","yes":"не спрашивать, как это нужно конвейеру","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"mcp":{"summary":"Отдаёт диаграммы BPMN ИИ-агенту по MCP. Чтение диаграммы и её проверка бесплатны; анализ потоков, сценарии, связи с кодом и правка требуют лицензии.","licence":"list_diagrams, show_diagram и check_diagram бесплатны. Остальные входят в Penstock Pro, а в конвейере — в Team.","exits":{"0":"0 сервер остановлен или напечатана запись для клиента","1":"1 инструменту запрошено то, чего у этой машины нет","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"config":"напечатать запись для клиента, чтобы вставить её в агента, и остановиться","project":"проект, с которым работает каждый инструмент без указания агента; ничего за его пределами не читается"}},"connectors":{"summary":"Перечисляет шаблоны коннекторов Camunda или то, где они закешированы на этой машине. С GitHub они скачиваются не чаще раза в день.","licence":"Бесплатно.","exits":{"0":"0 список напечатан","1":"1 список релизов скачать не удалось, и ответ говорит, когда будет следующая попытка","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"refresh":"проверить GitHub на новую версию сейчас","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"connectorsResolve":{"summary":"Печатает один шаблон коннектора, приведённый к запрошенной версии или к новейшей в кэше.","licence":"Бесплатно.","exits":{"0":"0 шаблон напечатан","1":"1 нет шаблона с таким идентификатором, и ответ говорит, что есть","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"refresh":"сначала проверить GitHub на новую версию","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"update":{"summary":"Переводит обёртку проекта на версию, по умолчанию на новейшую.","licence":"Бесплатно.","exits":{"0":"0 обёртка переведена","1":"1 не удалось, и ответ называет, на каком шаге отказали","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём"},"options":{"distribution":"откуда брать Penstock: tarball или спецификация реестра","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE"}},"web":{"summary":"Запускает редактор в браузере, только на этой машине. С папкой открывает этот проект; без папки начинает со страницы приветствия, где проект выбирается в браузере. Ключ в ссылке не пускает другие страницы и других пользователей, и ничего никуда не отправляется.","licence":"Бесплатно. То, что в IDE требует Pro, требует его и здесь.","options":{"port":"порт для прослушивания, по умолчанию 8765; если он занят, берётся следующий свободный","host":"адрес для прослушивания, по умолчанию 127.0.0.1; любой другой открывает папку для сети","noOpen":"вывести ссылку и не открывать браузер"},"exits":{"0":"0 сервер остановлен по Ctrl-C","1":"1 папки нет, порт или адрес непригодны, либо не нашлось свободного порта","2":"2 сбой самой CLI, а не команды; сообщение говорит, какой"}},"agentServe":{"summary":"Отдаёт ИИ-чат одного проекта средам разработки и редакторам, которые его показывают: чаты, их историю и агента, который за ними стоит, только по HTTP на 127.0.0.1. Все окна проекта делят этот один сервер. Он выводит строку JSON с портом и ключом, требует ключ как Bearer-токен в каждом запросе и завершается через несколько секунд после того, как к нему не останется подключённых окон и не будет идущего ответа.","licence":"Запуск бесплатный. Для отправки сообщения нужен Pro на машине разработчика и Team в конвейере.","options":{"project":"папка проекта, которой принадлежат чаты","detach":"запустить сервер в собственном сеансе, вывести его строку, как только он ответит, и вернуться; IDE запускает его так, чтобы сигнал её терминалу не останавливал сервер для всех окон"},"exits":{"0":"0 остановлен сигналом или завершился через несколько секунд после того, как к нему не осталось подключённых окон и не шло ответа; второй сервер для проекта, у которого уже есть сервер, ждёт, пока закроется его стандартный ввод","1":"1 проект не указан, папки нет или сервер не смог начать приём","2":"2 сбой самой CLI, а не команды; сообщение говорит, какой"}},"agent":{"summary":"Запускает в этом терминале собственную командную строку ИИ-агента, где MCP-сервер penstock уже настроен только на этот запуск. В собственную конфигурацию агента и в проект ничего не записывается. Всё, что идёт после --, передаётся агенту как есть. Без имени команда показывает агентов и то, какие из них установлены. Агент, добавленный в настройках, запускается с собственной командой и аргументами.","licence":"Бесплатно. Инструменты, которые получает агент, сохраняют свою лицензию: см. penstock mcp --help.","options":{"project":"проект, с которым работают инструменты penstock, и папка, в которой стартует агент; по умолчанию текущий проект"},"exits":{"0":"0 агент завершился нормально или список выведен","1":"1 агент не установлен, неизвестен или не смог запуститься; любой другой код принадлежит самому агенту","2":"2 сбой самой CLI, а не команды; сообщение говорит, какой"}},"testTask":{"summary":"Запустить один элемент диаграммы на движке, который назван в проекте. Процесс разворачивается как тестовая сборка, экземпляр стартует с переменными, путь до элемента завершается или имитируется, а сам элемент завершается, выбрасывает ошибку или остаётся в ожидании. Выводятся его переменные, инциденты и состояние, затем сборка удаляется.","licence":"Запуск процесса на движке входит в Penstock Pro, а в конвейере — в Team.","exits":{"0":"0 запуск завершился без упавших кейсов","1":"1 кейс упал или до движка не дошли","2":"2 сбой самой CLI, а не команды; сообщение говорит о чём","130":"130 Ctrl-C дважды: кейс отменён, его сборка удалена, запуск остановлен"},"options":{"element":"элемент для проверки","variables":"переменные, с которыми стартует экземпляр, поверх тех, что нужны для пути","variablesFile":"те же переменные, прочитанные из файла JSON","complete":"завершить элемент с этими переменными; по умолчанию завершается без переменных","error":"заставить элемент выбросить эту BPMN-ошибку вместо завершения","hold":"оставить элемент в ожидании, чтобы увидеть, что он получил","id":"какой процесс, если в файле их несколько","timeout":"сколько может длиться один шаг, по умолчанию 30"}}},"usage":{"init":"записывает penstock.yaml для этого проекта; --engine camunda-8|camunda-7|operaton|cib-seven|flowable|activiti|classic задаёт, на чём он работает\\n(спрашивается в терминале, когда папка пуста); --ci и --hooks добавляют остальное;\\n--example camunda-8|camunda-7|operaton|cib-seven|flowable|activiti записывает небольшой запускаемый проект в пустую папку","doctor":"проверяет настройку: слои конфигурации, профили, правила, шаблоны, движок; --format json печатает конфигурацию","check":"всё, что не так с диаграммами, по разделам: рисунок, правила bpmnlint и,\\nв Pro, как работают процессы, решения и формы; --only drawing,rules,flow для части этого","migrate":"Camunda 7 в Camunda 8: что не переносится, конвертированные файлы, отчёт для передачи дальше;\\nconvert требует Pro, а в конвейере Team: записывает файлы Camunda 8 в camunda-8 рядом с папкой, с\\nсобственным penstock.yaml, и больше ничего не трогает; --target 8.5..8.9, --dry-run, --out <dir> для другой папки","code":"проверяет диаграммы по коду: типы заданий, темы, классы и бины, которые никто не выполняет, воркеры, которые не использует ни одна диаграмма","facts":"контракты воркеров файлов из стандартного ввода, в JSON, для Python, Go, C# и Scala","templatesGenerate":"записывает шаблон элемента для каждого воркера заданий проекта в .camunda/element-templates;\\n--check ничего не пишет и завершается с кодом 1, когда переменные шаблона больше не совпадают с воркером","scenariosList":"перечисляет все различные пути по каждому процессу с условиями, которые их определяют: план тестирования; --format md|json","scenariosRun":"выполняет файлы тест-кейсов Camunda диаграмм на их движке, по шагам, с имитаторами;\\n--junit записывает класс Camunda Process Test, который их выполняет","scenariosGenerate":"записывает файлы тест-кейсов по путям каждого процесса","testCases":"команда, за которой стоят scenarios run и scenarios generate; --generate записывает файлы тест-кейсов вместо того, чтобы запускать их","junit":"записывает JUnit-тест для каждого пути по каждому процессу; --out <dir>, --package <name>","layout":"раскладывает диаграммы; --write, чтобы сохранить","fmt":"перезаписывает XML так, как его сохраняет редактор, чтобы различения оставались читаемыми","convert":"переводит диаграммы Camunda 7 или CIB seven в пространство имён Operaton","diffTwoFiles":"что изменилось между двумя версиями процесса","diffWorkingTree":"что изменилось в рабочей копии с момента коммита, ветки или тега, по умолчанию HEAD~1; --images, чтобы увидеть это","export":"отрисовывает диаграммы в изображения; --format svg|png, --out <dir>","share":"один HTML-файл для отправки: просмотрщик только для чтения с масштабированием, перемещением и документацией по каждому элементу, открывается без сети; -o <file.html>","import":"превращает диаграмму draw.io, Visio, Signavio или Bizagi в BPMN 2.0 и перечисляет то, что не удалось сопоставить; -o <file.bpmn>, --force","docs":"пишет документацию по каждому процессу, файлу решений и форме; --format html|md|docx|pdf, --out <dir>","report":"один markdown-комментарий для pull request: проверка, различие и изображения","bot":"ответ в pull или merge request из того CI-запуска, в котором он находится; настраивает init --ci","deploy":"разворачивает процессы, решения и формы на движок, указанный в конфигурации; --dry-run, --wait","show":"перечисляет элементы, потоки и свойства диаграммы; --format json для инструментов","edit":"добавляет, соединяет, задаёт и удаляет так же, как редактор; --ops для JSON в одну строку,\\n--ops-file для JSON в файле или - чтобы читать из стандартного ввода, --schema для контракта","license":"какая лицензия у этой машины или, если указать почту покупки, ключ для PENSTOCK_LICENSE в конвейере","trust":"разрешает penstock.yaml этого проекта выполнять здесь команды оболочки: нужно до запуска хука check, layout или deploy;\\n--list печатает, что доверено, --forget забирает доверие, --yes не спрашивает","licenseBuy":"покупает Penstock; лицензия сама попадает на эту машину","licenseLogin":"вход с почтой, на которой вы купили Penstock; ключ копировать не нужно","licenseActivate":"использует уже имеющийся ключ","licenseLogout":"освобождает лицензию этой машины, чтобы её могла использовать другая (то же, что license deactivate)","mcp":"отдаёт диаграммы BPMN ИИ-агенту по MCP: чтение и проверка бесплатны;\\nанализ потоков, сценарии, связи с кодом и правка требуют Pro, а в конвейере — Team;\\n--config печатает запись для клиента","connectors":"перечисляет шаблоны коннекторов Camunda или печатает один; с GitHub они скачиваются не чаще раза в день","update":"переводит обёртку проекта на версию, по умолчанию на новейшую","profile":"использовать этот профиль, как это сделал бы PENSTOCK_PROFILE","lang":"отвечает на этом языке: en, ru, de, zh, ja, ko, es, pt-BR или fr;\\nиначе решают LANG, затем LC_MESSAGES, затем LC_ALL, а ответом будет английский","refresh":"для connectors: проверить GitHub на новую версию сейчас","format":"как check, scenarios list, show и docs выводят себя","only":"какие части check запускать: drawing, rules, flow","baseline":"завершаться с ошибкой только на тех проблемах, которых нет в базовой линии","updateBaseline":"записать текущие проблемы как базовую линию","write":"позволить layout или fmt сохранить результат","force":"позволить import заменить уже существующий файл","dryRun":"позволить deploy показать, что он отправил бы, и ничего не отправлять","wait":"позволить deploy подтвердить у движка, что определения вступили в силу","ci":"какой конвейер должен записать init","out":"куда export кладёт изображения или куда report пишет свой markdown; -o то же самое, а для share — файл","base":"с чем сравнивает report; по умолчанию origin/main","imageBase":"откуда будут отдаваться изображения для комментария, который их показывает","imagesLink":"где искать их вместо этого, когда их нельзя показать в сообщении","images":"позволить diff отрисовать до и после с подсветкой изменений","imagesDir":"куда report кладёт свои изображения","distribution":"для update: откуда брать Penstock, tarball или спецификация реестра","stage":"для bot: нарисовать сейчас и отправить позже, когда изображения успеют загрузиться","target":"для migrate: версия Camunda 8, для которой выполняется конвертация, по умолчанию 8.8","failOn":"для migrate: что даёт код возврата 1, по умолчанию error","verbose":"для migrate: перечислить и пометить то, что переносится как есть","hooks":"установить хук pre-commit, который форматирует и проверяет диаграммы в индексе","trustProject":"разрешить penstock.yaml этого проекта выполнять свои хуки в текущем запуске, ничего не записывая","teamcity":"позволить scenarios run выводить служебные сообщения TeamCity, как их читает IDE","junitXml":"куда scenarios run записывает отчёт JUnit XML","timeout":"сколько scenarios run ждёт один шаг, по умолчанию 30","optionsHeading":"Опции","pathsNote":"Пути по умолчанию — это рабочая папка, а конфигурация читается из неё и выше, поэтому\\nневажно, из какой папки запускать.","helpNote":"У каждой команды и подкоманды есть своя справка: с опциями, примером, нужным уровнем и\\nсмыслом кодов возврата: penstock <command> --help, как penstock check --help или\\npenstock scenarios run --help.","guideNote":"Руководство: {url}","web":"запускает редактор в браузере для указанной папки или для папки, выбранной на странице приветствия; --port, --host и --no-open задают, где и открывать ли браузер","port":"порт, который слушает penstock web, по умолчанию 8765; если он занят, берётся следующий свободный","host":"адрес, который слушает penstock web, по умолчанию 127.0.0.1; любой другой открывает папку для сети","noOpen":"penstock web: вывести ссылку и не открывать браузер","agentServe":"отдаёт ИИ-чат одного проекта среде разработки по HTTP на этой машине; --project указывает проект","agentLaunch":"запускает здесь собственную командную строку агента с MCP-сервером penstock, настроенным на этот запуск; без имени показывает список агентов","testTask":"запустить одну задачу диаграммы на движке: путь до неё завершается или имитируется, затем показываются переменные, инциденты и состояние"},"renamed":"penstock {old} теперь {now}; старое имя уйдёт в следующем релизе.","flagRenamed":"{old} теперь {now}; старый флаг уйдёт в следующем релизе.","scenariosUsage":"Используйте scenarios list, scenarios run или scenarios generate.","mcpConfigHint":"Вставьте в конфигурацию вашего MCP-клиента или, установив командную строку (npm install -g @kern0x1b/penstock-cli), в Claude Code выполните: claude mcp add penstock -- penstock mcp. VS Code не нужно ни то, ни другое: расширение Penstock регистрирует сервер само. Сервер найдёт проект по файлам, о которых спрашивает агент.","mcp":{"partOf":"{description} Часть Penstock Pro, а в конвейере Team: {gives}.","nothing":"ничего","takesNot":"{tool} принимает {list}, а не {extra}","rootsNotSaid":"Клиент не сообщил, какие папки открыты, поэтому ни один файл нельзя отнести к ним. Откройте папку в клиенте и повторите попытку.","truncated":"Результат обрезан на {shown} из {total} символов. Запросите меньше: один процесс или диаграмму поменьше.","needs":"{tool} требует {list}","mustBeTrueOrFalse":"{tool}: {name} должно быть true или false","noDirectory":"каталога {target} нет","notADirectory":"{target} не каталог","projectMustBeAbsolute":"\\"project\\" должен быть абсолютным путём к папке проекта","projectNotGiven":"\\"project\\" нужно задать абсолютным путём к папке проекта","fileMustBeAbsolute":"\\"file\\" должен быть абсолютным путём к диаграмме","noFile":"файла {file} нет","noElement":"В {file} нет элемента {id}. Есть: {ids}.","notABpmnDiagram":"{file} не диаграмма BPMN","outsideRoots":"{target} вне корней рабочей области","notAPenstockProject":"{target} не проект Penstock","notADiagram":"{file} не файл BPMN, DMN или формы","badRevision":"{ref} не ревизия git, которую здесь можно использовать","noCommittedVersion":"У {file} нет зафиксированной версии в {ref}, так что сравнивать не с чем","wouldReflow":"перестроил бы раскладку (dryRun, ничего не записано)","imageTooLarge":"Рисунок занимает {size} символов, слишком много, чтобы вернуть его здесь. Передайте out, папку, чтобы записать его туда.","pngReturned":"{file} нарисован как изображение PNG.","onlyOneOf":"{tool} принимает {first} или {second}, но не оба","mustBeOneOf":"{tool}: {name} должно быть одним из {list}","mustBePositive":"{tool}: {name} должно быть целым числом больше нуля","outMustBeAbsolute":"\\"out\\" должно быть абсолютным путём к папке","instructions":"Инструменты для диаграмм BPMN, решений DMN и форм Camunda из разных проектов. Передавайте абсолютные пути к файлам или папкам проектов. Прочитайте диаграмму через show_diagram, прежде чем менять её через edit_diagram.","unknownTool":"неизвестный инструмент: {name}","unknownPrompt":"неизвестный промпт: {name}","methodNotFound":"метод не найден: {method}","parseError":"ошибка разбора","notARequest":"это не запрос JSON-RPC: один объект запроса на строку, без массивов","tool":{"listDiagrams":"Перечисляет диаграммы BPMN в проекте и возвращает абсолютные пути.","showDiagram":"Описывает диаграмму: каждый элемент и поток с его id, типом, именем, соединениями и свойствами движка. Прочитайте это перед правкой; операции ссылаются на эти id.","elementContext":"Показывает, что окружает один элемент диаграммы, так, как это видят подсказки редактора: переменные, которые до него доходят, и какой элемент пишет каждую, что элемент сам читает и пишет, его типы заданий, а также типы заданий, процессы и решения, которые уже есть в проекте. Прочитайте это, прежде чем называть переменную, тип задания или привязку, чтобы использовать существующее имя, а не придумывать новое. Расчёт идёт только по диаграммам, без кода за ними.","checkDiagram":"Сообщает, что не так с диаграммой, как это делает проверка в редакторе: рисунок, правила bpmnlint проекта и, с лицензией, как работает процесс.","analyzeFlow":"Находит, что не так с тем, как работает диаграмма: взаимные блокировки, ветви, которые выполняются дважды, элементы, которые не могут выполниться, и циклы без выхода, каждый с путём из id элементов, который туда ведёт. Запускайте после edit_diagram.","listScenarios":"Перечисляет все различные пути по диаграмме: какие решения принимает каждый, их условия, какие шаги выполняются и где он заканчивается. Используйте, чтобы писать тесты или объяснять процесс.","checkCodeLinks":"Проверяет каждую диаграмму проекта по коду: типы заданий, темы внешних заданий, классы и бины, которые никто не выполняет, вызываемые процессы, которых нет ни в одной диаграмме, и воркеры, которые не использует ни одна диаграмма, с файлом и строкой.","listDiagramsMore":"У каждой записи есть файл и его вид (process, decision или form): файлы решений DMN и формы Camunda тоже перечисляются.","showDiagramMore":"Для файла DMN выдаёт каждое решение с политикой попаданий, входами, выходами, правилами и теми решениями, входными данными и знаниями, которые оно требует; для формы Camunda выдаёт её компоненты с типом, ключом и подписью.","elementContextMore":"Для файла DMN элемент это id решения, а ответ это его таблица, решения, которым оно нужно, и элементы процесса, которые его вызывают; для формы это ключ или id компонента, с элементами процесса, которые открывают форму.","checkDiagramMore":"Файл DMN и форма тоже проверяются: нечитаемый файл DMN и проверки формы (повторяющиеся или отсутствующие ключи, повторы вариантов) бесплатны; пропуски и пересечения между правилами таблицы решений требуют лицензии.","searchElements":"Находит, где в проекте используется имя: элементы, процессы, сообщения, решения и их выходы, переменные с элементами, которые их записывают и читают, и поля форм. Сравнивает id или имя без учёта регистра, точные совпадения первыми. Используйте перед тем, как придумывать имя, и чтобы увидеть, что заденет переименование.","diffDiagrams":"Говорит, что изменилось между двумя диаграммами BPMN или между диаграммой и её зафиксированной версией (HEAD, если ref не называет другую): добавленные, удалённые и изменённые элементы и id элементов, которые только сдвинулись на холсте.","exportImage":"Рисует диаграмму BPMN как SVG (возвращается текстом) или PNG (возвращается изображением; нужен установленный puppeteer). Передайте out, папку, чтобы записать файл туда, а не возвращать.","layoutDiagram":"Запускает автоматическую раскладку редактора на диаграмме и записывает результат обратно одним атомарным шагом. Элементы и потоки остаются прежними, меняются только их позиции. Через dryRun можно увидеть, какие элементы сдвинутся, ничего не записывая.","runScenarios":"Запускает сохранённые тест-кейсы проекта на локальном движке Camunda, помеченном для тестов, и возвращает, какие прошли, упали или пропущены. Передайте диаграмму как file или папку проекта. Каждый запуск разворачивает на движке свою копию диаграмм, потом удаляет её и сохраняет трассу в .penstock/runs.","editDiagram":"Меняет диаграмму через собственное моделирование редактора: новые элементы расставляются и соединяются так, как это делает редактор, а id следуют соглашениям проекта. Операции применяются вместе или никак. Правка, которая сломала бы рисунок (наложение фигур, поток сквозь фигуру, оторванный поток), отклоняется; пересечения и подобное только сообщаются. Используйте dryRun, чтобы увидеть результат, ничего не записывая.","testTask":"Запустить один элемент диаграммы на локальном движке Camunda, помеченном проектом для тестов: процесс разворачивается как тестовая сборка, экземпляр стартует с переменными, путь до элемента завершается или имитируется, затем элемент завершается, выбрасывает BPMN-ошибку или остаётся в ожидании. Возвращает состояние элемента, что он получил и отправил, переменные, инциденты и состояние экземпляра, а затем удаляет сборку."},"prompt":{"reviewDiagram":{"description":"Проверить диаграмму: запустить проверки, прочитать, как она выполняется, и сообщить, что исправить, начиная с самого серьёзного.","text":"Проверьте диаграмму {file}. Прочитайте её через show_diagram, запустите check_diagram, а для диаграммы BPMN ещё и analyze_flow. Затем перечислите, что не так, начиная с самого серьёзного, к каждому пункту добавьте id затронутых элементов и предлагаемое изменение. Ничего не меняйте, пока я не соглашусь."},"explainProcess":{"description":"Объяснить процесс простым языком тому, кто его не видел.","text":"Объясните процесс {file} простым языком тому, кто его не видел. Прочитайте его через show_diagram и list_scenarios, назовите основной путь и каждое решение с тем, что направляет его в одну или другую сторону, и скажите, где он может закончиться. Используйте названия с диаграммы, а id элементов называйте только по моей просьбе."}},"param":{"file":"Абсолютный путь к диаграмме BPMN.","project":"Абсолютный путь к папке проекта. Если не задан, берутся корни рабочей области, которые дал клиент.","anyFile":"Абсолютный путь к файлу BPMN, DMN или формы Camunda.","query":"Текст, который ищется в id и именах.","kinds":"Искать только эти виды. Если не указано, все.","limit":"Наибольшее число возвращаемых результатов. По умолчанию 50.","other":"Абсолютный путь ко второй диаграмме BPMN. Если не указан, диаграмма сравнивается с зафиксированной версией.","ref":"Ревизия git для сравнения, когда other не указан. По умолчанию HEAD.","format":"svg (по умолчанию) или png.","out":"Абсолютный путь к папке, куда записать изображение. Если не указан, изображение возвращается.","timeout":"Сколько секунд может занять один шаг тест-кейса, прежде чем он упадёт.","dryRun":"Показать, что изменится, ничего не записывая.","element":"Идентификатор проверяемого элемента.","variables":"Переменные, с которыми стартует экземпляр. Они важнее значений, нужных для пути.","complete":"Переменные, с которыми завершается элемент. Это поведение по умолчанию, без переменных.","error":"Код BPMN-ошибки, которую элемент выбрасывает вместо завершения.","hold":"Оставить элемент в ожидании, чтобы увидеть, что он получил.","process":"Идентификатор процесса, если в файле их несколько."},"mustBeText":"{tool}: {name} должен быть непустой строкой","mustBeObject":"{tool}: {name} должен быть объектом"},"checkUnknownSection":"у check нет раздела {section}. Есть {sections}.","badFailOn":"--fail-on должен быть error или warning, а не {value}.","badTimeout":"Таймаут должен быть числом секунд.","badFormat":"--format должен быть одним из: {values}, а не {value}.","preHookStopped":"Этап {stage} остановлен его pre-хуком.","postHookStopped":"Этап {stage} остановлен его post-хуком.","unknownCommand":"Неизвестная команда: {command}","stopping":"Остановка: выполняющийся тест-кейс отменяется, его сборка удаляется. Нажмите Ctrl-C ещё раз, чтобы выйти сразу.","show":{"needsDiagram":"для show нужна диаграмма: penstock show process.bpmn"},"facts":{"badInput":"facts читает со стандартного ввода JSON-список файлов, у каждого есть путь и текст"},"web":{"serving":"Папка {folder} открыта","pressCtrlC":"Нажмите Ctrl+C, чтобы остановить.","stopping":"Останавливаю.","notAFolder":"{folder} — не папка.","badPort":"Порт должен быть числом от 0 до 65535, а не «{value}».","badHost":"Адрес должен быть IP-адресом или именем хоста, а не «{value}».","noFreePort":"Нет свободного порта от {from} до {to}.","cannotListen":"Penstock не может слушать порт: {reason}","portTaken":"Порт {port} занят, поэтому Penstock использует {used}.","exposed":"Предупреждение: --host {host} делает эту машину доступной с других машин. Любой, у кого есть ссылка ниже, может читать и менять диаграммы открытого проекта и видеть имена папок на этой машине.","noPageWarning":"Страницы редактора нет в этой сборке, поэтому отвечает только API. Соберите webview или укажите в PENSTOCK_WEB_ROOT готовую страницу.","noPage":"Страницы редактора нет в этой установке.","browserFailed":"Penstock не может открыть браузер. Откройте ссылку выше сами.","reason":{"internal":"Сервер не может этого сделать.","noSuchFile":"Такого файла нет.","noAccess":"У сервера нет прав на это.","isAFolder":"Это папка, а не файл.","diskFull":"Диск заполнен.","exists":"Это уже существует.","badPath":"{path} должен быть путём внутри папки.","outside":"{path} находится вне папки, которую открыл Penstock.","notEditable":"Penstock записывает только диаграммы, решения, формы, тест-кейсы, penstock.yaml и шаблоны элементов, а {path} ничем из этого не является.","tooLarge":"Запрос должен быть меньше {limit} МБ.","fileTooLarge":"Файл должен быть меньше {limit} МБ.","notAnObject":"Запрос должен быть JSON-объектом.","missingField":"В запросе должно быть поле {field}.","wrongField":"В запросе неверное поле {field}.","notJson":"Тело запроса должно быть JSON и отправляться как application/json.","wrongHost":"Penstock не отвечает по этому адресу.","wrongOrigin":"Этот запрос пришёл с другой страницы, а Penstock отвечает только своей.","noToken":"Откройте ссылку, которую вывел penstock web: в ней ключ, нужный этому серверу.","methodNotAllowed":"Эта операция не принимает такой метод.","noSuchOperation":"Такой операции нет.","tooLong":"Адрес запроса слишком длинный.","tookTooLong":"Запрос выполнялся слишком долго.","notTheProject":"{path} — не та папка, которую открыл Penstock.","badFileList":"В запросе должно быть от 1 до 500 файлов.","listedTwice":"{path} указан дважды.","alreadyExists":"{path} уже существует.","badTraceName":"Запуск и имя трассы должны состоять из строчных букв, цифр и дефисов.","unknownFeature":"{feature} — функция, которой Penstock не знает.","tooMany":"В запросе слишком много элементов.","badProfile":"Имя профиля должно состоять из букв, цифр, пробелов, точек, дефисов или подчёркиваний, не более 80 символов.","notAnAddress":"Поле {field} должно быть адресом http или https.","badEnginePath":"К движку можно обращаться только по путям его собственного API методами GET, POST, PUT, PATCH или DELETE.","tooManyHooks":"Запущено слишком много хуков развёртывания.","noSuchRun":"Такого запуска хука нет.","notWebAddress":"{url} — не веб-адрес.","connectorRefused":"Каталог коннекторов отклонил запрос: {detail}","engineAnswerTooLarge":"Ответ движка должен быть меньше {limit} МБ.","projectGone":"Папки этого проекта больше нет.","noProject":"Ни один проект не открыт. Сначала откройте проект.","projectChanged":"Сервер теперь работает с другим проектом. Перезагрузите страницу, чтобы перейти к нему.","switchBusy":"Идёт развёртывание. Дождитесь его окончания, прежде чем открывать другой проект.","badFolder":"{folder} должно быть путём к папке.","notAbsolute":"{folder} должно быть абсолютным путём, например /home/me/project или C:\\\\Projects\\\\app.","noSuchFolder":"{folder} не существует.","notAFolder":"{folder} — это файл, а не папка.","folderNotReadable":"У Penstock нет прав на чтение {folder}.","nameEmpty":"Имя не должно быть пустым.","nameCharacters":"Имя не должно содержать / \\\\ : * ? \\" < > | и управляющие символы.","nameDots":"Имя не должно начинаться или заканчиваться пробелом и не должно заканчиваться точкой.","nameReserved":"{name} — имя, зарезервированное Windows.","nameLong":"Имя должно занимать не более 255 байт.","notTheRoot":"Саму папку проекта здесь изменить нельзя.","isALink":"{path} — символическая ссылка, а Penstock ссылки не изменяет.","changedOnDisk":"{path} изменился на диске с момента последнего чтения страницей.","kindChange":"{path} должен сохранить свой тип файла.","moveIntoItself":"Папку нельзя переместить в саму себя.","tooDeep":"Папка вложена слишком глубоко.","folderHoldsOthers":"В {path} есть файлы, которые Penstock не редактирует, поэтому папка не удалена.","archiveTooLarge":"В проекте больше {files} файлов или больше {size} ГБ — это слишком много для одной загрузки.","busy":"Файл занят другой программой.","readOnly":"Диск доступен только для чтения.","otherDisk":"Penstock не перемещает файлы между дисками.","noLanguageServer":"Языкового сервера с именем {server} нет.","languageServerMissing":"Команда языкового сервера {command} не установлена на этом компьютере.","languageServerUnsafe":"Языковой сервер {command} — это командный файл Windows, который нельзя безопасно запустить с этими аргументами.","tooManyLanguageServers":"Одновременно должно работать не более {limit} языковых серверов.","staleToolWindow":"Окно инструментов изменилось с момента чтения. Обновите дерево и повторите.","noSuchAction":"Этого действия нет в окне инструментов. Обновите дерево и повторите."},"unsupported":{"script":"Файлы скриптов открываются в редакторе IDE, которого в редакторе для браузера нет.","diff":"Сравнение из системы контроля версий показывает IDE.","clipboard":"Буфер обмена принадлежит браузеру.","chooser":"Файлы выбираются на странице, а не в системном диалоге.","navigation":"Чтобы открыть код, нужна IDE. Используйте Penstock в IDE JetBrains или в VS Code, чтобы перейти к нему.","view":"Окна инструментов принадлежат IDE.","reveal":"Страница сама открывает диаграммы.","tests":"Чтобы запускать тесты из кода, нужна IDE. Выполните penstock scenarios run в командной строке.","rename":"Чтобы переименовать связанные имена в коде, нужна IDE.","confirm":"Подтверждения запрашиваются на самой странице.","migration":"Предпросмотра преобразования в редакторе для браузера нет. Выполните penstock migrate в командной строке.","document":"Редактор в браузере сохраняет через файловые операции и ведёт собственную историю отмены."},"page":{"expired":{"title":"Эта ссылка не открывает Penstock","text":"Ключ в ней отсутствует или уже недействителен. Возможно, Penstock перезапустили после создания ссылки.","hint":"Используйте ссылку, которую penstock web вывел в терминале, или запустите penstock web снова."},"missing":{"title":"Такой страницы нет","text":"По этому адресу у Penstock нет страницы.","hint":"Вернитесь в редактор по ссылке, которую вывел penstock web."},"open":"Открыть редактор"},"servingWelcome":"Проект пока не открыт. Выберите его в браузере.","toolWindow":{"unsupported":{"outside":"Этот файл находится вне проекта, который обслуживает Penstock.","tests":"Запуск тестов из кода требует IDE. Запустите сценарии на вкладке «Сценарии» диаграммы или выполните penstock scenarios run в командной строке.","migration":"Преобразование в Camunda 8 пока недоступно в браузерном редакторе. Выполните penstock migrate analyze, convert или report в командной строке.","templates":"Создание воркеров и шаблонов элементов из окна инструментов пока недоступно в браузерном редакторе. Выполните penstock templates generate в командной строке."},"script":{"missing":"Этого скрипта больше нет в диаграмме."}}},"webHost":{"reason":{"notLicensed":"Для переименования связанных имён нужна лицензия Pro.","changedSince":"{file} изменился после подготовки переименования. Ничего не записано.","licence":"Ключ не принят: {detail}","licenceService":"Не удалось связаться со службой лицензий: {detail}","keyShape":"Ключ лицензии выглядит неполным. Вставьте его так, как он указан в письме о покупке.","nothingToRelease":"На этой машине нет активированной лицензии, которую можно вернуть."}},"agentServe":{"needsProject":"Укажите, для какого проекта чаты: penstock agent serve --project <dir>."},"agentLaunch":{"heading":"Агенты, которые может запустить penstock agent <имя>:","how":"Запустите одного: penstock agent <имя> [-- <аргументы для агента>]","installed":"установлен","missing":"не установлен - {install}","notFound":"его команды нет на этом компьютере","unknown":"Агента с именем {agent} нет. Выберите одного из: {list}.","notInstalled":"{name} не установлен на этом компьютере. Установите так: {install}","commandMissing":"Команды {name}, {command}, нет на этом компьютере.","noMcp":"Penstock не смог определить отсюда, как запускать собственный MCP-сервер, поэтому агент не запущен.","customNote":"{name} — добавленный вами агент, поэтому MCP-сервер penstock передаётся ему как JSON в переменной окружения PENSTOCK_MCP_CONFIG.","cannotPrepare":"Агент не запущен, потому что его настройки на этот запуск не удалось записать: {reason}","cannotStart":"Не удалось запустить {name}: {reason}","unsafeArguments":"{name} — это командный файл Windows, и его аргументы нельзя безопасно передать такому файлу, поэтому он не был запущен.","extraWords":"Всё, что предназначено агенту, нужно поставить после --, например: penstock agent {agent} -- <аргументы>."},"start":{"npmMissing":"Для работы командной строки Penstock нужны Node.js и npm.","unpublished":"У npm нет командной строки Penstock для этой версии, поэтому команда не запустилась.","installFailed":"Не удалось установить командную строку Penstock. Проверьте сеть или реестр npm и попробуйте снова.","notStarted":"Командную строку Penstock не удалось запустить.","details":"Подробности","progress":"Запуск командной строки Penstock"},"test":{"unknown":"Укажите, что проверять: penstock test task <file.bpmn> --element <id>.","notAnObject":"нужен объект, например {\\"order\\": \\"A-1\\"}"}},"actions":{"undo":{"title":"Отменить","tooltip":"Отменить"},"redo":{"title":"Повторить","tooltip":"Повторить"},"auto-layout":{"title":"Автораскладка","tooltip":"Расположить диаграмму заново","keywords":"выровнять, упорядочить, раскладка, слева направо"},"diagram-check":{"title":"Проверка","tooltip":"Проверить диаграмму на проблемы","keywords":"линтер, ошибки, предупреждения, валидация, конвенции"},"token-simulation":{"title":"Симуляция","tooltip":"Прогнать токены по процессу","keywords":"токены, запуск, прогон, воспроизвести"},"coverage":{"title":"Покрытие","tooltip":"Показать, что затрагивают тесты процесса","keywords":"тесты, охват, пути"},"live":{"title":"Мониторинг","tooltip":"Что движок делает с этой диаграммой сейчас: экземпляры, ожидающие на каждом шаге, и инциденты","keywords":"экземпляры, инциденты, живой, работает"},"runs":{"title":"Сценарии","tooltip":"Запустить сценарии диаграммы на локальном движке и увидеть каждый шаг","keywords":"тест-кейсы, тесты, трассировка"},"migration":{"title":"Перейти на Camunda 8","tooltip":"Что не переносится в Camunda 8, и конвертация","keywords":"миграция, конвертировать, обновление"},"convert-operaton":{"title":"Конвертировать в Operaton","tooltip":"Перевести диаграмму Camunda 7 или CIB seven в пространство имён operaton:","keywords":"конвертировать, конвертация, пространство имён, Operaton, CIB seven, cibseven, Camunda 7"},"deploy":{"title":"Развернуть","tooltipTo":"Развернуть на {url}","tooltipEngine":"Развернуть на движке","noEngine":"Чтобы развернуть, добавьте движок в penstock.yaml","keywords":"деплой, опубликовать, загрузить, выпуск"},"open-tasklist":{"title":"Открыть в Tasklist","tooltip":"Открыть Tasklist в браузере","keywords":"tasklist, задачи, пользовательские задачи, работа"},"toggle-sidebar":{"title":"Боковая панель","tooltip":"Боковая панель","keywords":"инспектор, свойства, панель"},"focus-canvas":{"title":"Фокус на холсте","tooltip":"Скрыть боковые панели и показать только холст; повторное нажатие вернёт их","keywords":"фокус, холст, скрыть, боковые панели, весь экран, концентрация"},"fit-diagram":{"title":"Вписать диаграмму","tooltip":"Показать всю диаграмму на холсте","keywords":"масштаб, сбросить, целиком, центр"},"zoom-in":{"title":"Приблизить","keywords":"увеличить, ближе"},"zoom-out":{"title":"Отдалить","keywords":"уменьшить, дальше"},"transaction-boundaries":{"title":"Границы транзакций","tooltip":"Показать, где движок фиксирует транзакцию: ожидания и асинхронные продолжения","keywords":"коммит, ожидание, асинхронно, продолжение"},"minimap":{"title":"Миникарта","keywords":"обзор, навигатор, карта"},"trace-paths":{"title":"Трассировка путей","tooltipOn":"Показать все пути, проходящие через выбранный элемент, и приглушить остальную диаграмму","tooltipOff":"Выберите задачу, шлюз или событие, чтобы проследить проходящие через него пути","keywords":"достижимость, до, после, подсветить, что ведёт сюда"},"sketchy":{"title":"Набросок","keywords":"рисованный, от руки, стиль, отрисовка"},"show-comment-badges":{"title":"Показывать значки комментариев","tooltip":"Рисовать число открытых комментариев на каждом элементе, у которого они есть","keywords":"комментарии, заметки, значок, счётчик"},"export":{"title":"Экспорт…","tooltip":"Сохранить диаграмму как SVG, PNG или PDF либо скопировать её как картинку","keywords":"изображение, картинка, копировать как картинку"},"marketplace":{"title":"Шаблоны…","keywords":"коннекторы, шаблоны элементов, каталог"},"import":{"title":"Импорт диаграммы…","tooltip":"Превратить диаграмму draw.io, Visio, Signavio или Bizagi в BPMN","keywords":"конвертировать, загрузить"},"share":{"title":"Поделиться как HTML…","tooltip":"Один файл, который открывается в любом браузере без сети","keywords":"отправить, опубликовать, офлайн, браузер"},"copy":{"title":"Копировать","keywords":"дублировать"},"paste":{"title":"Вставить"},"tour":{"title":"Показать обзор снова","keywords":"приветствие, введение, гид, первый запуск"},"keyboard-shortcuts":{"title":"Сочетания клавиш","tooltip":"Все сочетания клавиш этого редактора","keywords":"клавиши, горячие клавиши, шпаргалка, справка"},"open-documentation":{"title":"Документация","tooltip":"Открыть руководство в браузере","keywords":"документация, руководство, справка, помощь, инструкция, сайт"},"undo-long":{"title":"Отменить","tooltip":"Отменить последнюю операцию"},"redo-long":{"title":"Повторить","tooltip":"Повторить последнюю операцию"},"dmn-check":{"title":"Проверка","tooltip":"Проверить решения","keywords":"линтер, ошибки, предупреждения, решения"},"export-table-workbook":{"title":"Экспорт таблицы решений в книгу…","tooltip":"Сохранить входы, выходы и все правила как книгу Excel","keywords":"xlsx, эксель, таблица, правила, сохранить"},"export-table-csv":{"title":"Экспорт таблицы решений в CSV…","tooltip":"Сохранить входы, выходы и все правила в виде значений, разделённых запятыми","keywords":"csv, таблица, правила, сохранить"},"import-table":{"title":"Импорт таблицы решений…","tooltip":"Заменить правила выбранной таблицы правилами из книги или CSV","keywords":"xlsx, csv, эксель, правила, прочитать"},"import-table-new":{"title":"Добавить правила из таблицы…","tooltip":"Заполнить открытую таблицу решений правилами из книги или CSV","keywords":"xlsx, csv, эксель, новая таблица, правила"},"dmn-trace-paths":{"title":"Трассировка путей","tooltipOn":"Показать все решения и входные данные, нужные выбранному решению, и всё, что от него зависит","tooltipOff":"Выберите решение на диаграмме требований, чтобы проследить, что ему нужно","keywords":"требования, нужно, зависит от, подсветить"},"preview":{"title":"Предпросмотр","tooltip":"Опробовать форму на тестовых данных","keywords":"проба, тестовые данные, отрисовать, проверить форму"},"form-check":{"title":"Проверка","tooltipUnreadable":"Не удалось прочитать эту форму, поэтому проверять нечего","tooltip":"Проверить форму","keywords":"линтер, ошибки, предупреждения, форма"},"section":{"checkRun":"Проверка и запуск","layoutConvert":"Раскладка и конвертация","deployShare":"Развёртывание и публикация","view":"Вид","file":"Файл","edit":"Правка","help":"Справка","recent":"Недавние"},"editor-theme":{"title":"Тема редактора","tooltip":"Следовать за IDE или выбрать Светлую, Тёмную или Dracula","keywords":"тема, светлая, тёмная, dracula, цвета, оформление, как в ide"},"start-instance":{"title":"Запустить экземпляр…","tooltip":"Запустить экземпляр процесса на подключенном движке","keywords":"запуск, запустить, экземпляр, процесс, триггер"},"debug-process":{"title":"Отладить процесс","tooltip":"Запустить копию процесса на локальном движке и останавливаться на точках останова, чтобы читать и менять переменные","keywords":"точка останова, шаг, пауза, отладчик, переменные, стоп"},"toggle-breakpoint":{"title":"Переключить точку останова","tooltip":"Остановить отладчик перед выбранным шагом","keywords":"точка останова, остановиться здесь, пауза, отладчик"},"compare-with-head":{"title":"Сравнить с последним коммитом","tooltip":"Показывает, что изменилось с последнего коммита","keywords":"разница, git, изменения, коммит, сравнить, версии, история"},"show-licence":{"title":"Лицензия","tooltip":"Посмотреть тариф, ввести лицензионный ключ или купить его","keywords":"лицензия, pro, team, пробный, активировать, ключ, купить, тариф"},"timeline":{"title":"Временная шкала","tooltip":"Прокручивать шаги прогона: экземпляра, выбранного в Мониторинге, или прогона сценария","keywords":"история, трасса, маркер времени, повтор, шаги, гант, машина времени"},"show-code-badges":{"title":"Показывать метки кода","tooltip":"Рисует на каждой задаче метку о том, найден ли её код в проекте","keywords":"код, воркер, делегат, бин, метка, отсутствует"},"chat":{"title":"ИИ-чат","tooltip":"ИИ-чат","keywords":"ИИ, агент, помощник, спросить, беседа, чат"},"test-task":{"title":"Проверить задачу…","tooltip":"Запустить выбранный элемент на локальном движке: путь до него завершается или имитируется, а результат виден в сценариях","keywords":"проверка, тест, задача, элемент, имитация, запуск, путь"}},"autoLayout":{"autoLayout":"Автораскладка","laidOut":{"one":"Расположен {count} элемент","other":"Расположено {count} элемента","few":"Расположено {count} элемента","many":"Расположено {count} элементов"}},"canvas":{"debugTests":"Отладить тесты","findUsagesInCode":"Найти использования в коде","goTo":"Перейти к {label}","goToImplementation":"Перейти к реализации","runTests":"Запустить тесты","unableToReadTheFile":"Не удалось прочитать файл"},"code":{"findUsages":"Найти использования","followingAStepToThe":"Переход от шага к коду, который его выполняет, к его тестам и использованиям — часть Penstock Pro. Классы и бины Camunda 7 доступны в Free.","goToCode":"Перейти к коду","noCodeFoundForThis":"Для этого шага код не найден.","nothingInTheProjectRuns":"В проекте ничего не выполняет его, не тестирует и не использует. Сервисная задача связывается по типу задания, классу или бину.","selectATaskToSee":"Выберите задачу, чтобы увидеть её код.","theProjectHasNotBeen":"Проект ещё не прочитан.","theWorkersClassesBeansAnd":"Воркеры, классы, бины и тесты шага появятся здесь, как только вы выберете его на диаграмме.","section":{"implementations":"Выполняется в","tests":"Тесты","usages":"Используется в"},"warn":{"missingImplementation":"Этот шаг не выполняется ничем в коде.","neverThrown":"Ошибку, которую ловит этот шаг, не выбрасывает ничто в коде.","unsetTypo":"{name} читается, но задаётся только {closest}.","unset":"{name} читается, но его никто не задаёт.","unfetchedClosest":"Воркер получает {closest}, а не {name}, поэтому {name} равен null.","unfetched":"Воркер не получает {name}, поэтому он равен null.","unread":"Воркер задаёт {name}, и ни один шаг после этого его не читает.","lateRead":"Воркер читает {name}, и ни один шаг до этого его не задаёт.","nearCase":"{name} этого шага отличается от {near} в коде регистром.","near":"В коде есть {near}, отличающийся от {name} этого шага одной буквой.","implicit":"Тип задания этого шага — имя метода {method}, которое меняется при переименовании.","mappingOrder":"Сопоставление читает {path} как null: {target} задаётся более ранней строкой.","lostUpdate":"Каждый параллельный экземпляр записывает {name} поверх остальных: у шага нет элемента выхода."},"kind":{"JOB_TYPE":"тип задания","TOPIC":"тема","CLASS":"класс java","BEAN":"бин","MESSAGE":"имя сообщения","ERROR":"код ошибки"},"fact":{"places":{"one":"{count} место","other":"{count} места","few":"{count} места","many":"{count} мест"},"here":{"one":"здесь {count}","other":"здесь {count}","few":"здесь {count}","many":"здесь {count}"},"withIncident":{"one":"{count} с инцидентом","other":"{count} с инцидентом","few":"{count} с инцидентом","many":"{count} с инцидентом"},"reachedBy":"достигается в {tests} из {total} тестов","notFetched":"не получается воркером","near":"в коде есть «{near}»","neverSet":"никогда не задаётся в проекте","reached":"достигается","thrownBy":"Выбрасывается в","runsIn":"Выполняется в","nothingInCode":"ничего в коде","tests":"Тесты","inCode":"В коде","sets":"Задаёт","reads":"Читает","notFetchedClosest":"не получается, «{closest}» получает","unread":"задаётся, ни один шаг после не читает","lateRead":"читается, до него его не задаёт ни один шаг","nearCase":"в коде регистром отличается только «{near}»","implicit":"взято из метода {method}","mappingOrder":"читает null, {target} задаётся более ранней строкой","lostUpdate":"записывается каждым экземпляром, элемента выхода нет","neverSetClosest":"никогда не задаётся, «{closest}» задаётся","noTestReaches":"его не достигает ни один тест","coverage":"Покрытие","theEngine":"движок","on":"На {where}","testsReach":{"one":"{count} тест достигает его","few":"{count} теста достигают его","many":"{count} тестов достигают его","other":"{count} теста достигают его"}},"finding":{"unfetchedWhere":"код читает её, поэтому во время выполнения она равна null","missingImplementation":"{name} не выполняется ничем в коде","missingImplementationWhere":"его не реализует ни один воркер, делегат или бин","neverThrown":"Ошибку, которую ловит {name}, не выбрасывает ничто в коде","neverThrownWhere":"её код не использует ни один BpmnError или команда error","typo":"{name} читается, но задаётся только {closest}","unfetched":"Воркер не получает {name}","unfetchedClosestWhere":"вместо этого он получает {closest}, поэтому {name} во время выполнения равна null","unread":"После этого шага {name} никто не читает","unreadWhere":"её задаёт воркер, и ни один следующий шаг её не читает","lateRead":"До этого шага {name} никто не задаёт, хотя он её читает","lateReadWhere":"её читает воркер, а до него её не задаёт ни один шаг","nearCase":"{name} отличается регистром от {near}, который есть в коде","near":"В коде есть {near}, отличающийся от {name} этого шага одной буквой","nearWhere":"{kind} с несовпадающим именем оставляет шаг без реализации","implicit":"Тип задания этого шага — имя метода {method}","implicitWhere":"@JobWorker без типа берёт имя метода, поэтому переименование ломает диаграмму","mappingOrder":"{path} читается как null, {target} задаётся более ранней строкой сопоставления","mappingOrderWhere":"движок вычисляет все источники, прежде чем записать любой из приёмников","lostUpdate":"Каждый экземпляр записывает {name} поверх остальных","lostUpdateWhere":"параллельный шаг с несколькими экземплярами без элемента выхода сохраняет только последний результат","templateDrift":"Шаблон элемента {name} больше не описывает, что читает воркер: {drift}","variableField":"У переменной {variable} нет поля {field}. Её тип {type} содержит {fields}","variableFieldNone":"У переменной {variable} нет поля {field}. В её типе {type} нет полей, которые читает движок","variableFieldWhere":"Читается здесь, задаётся в {from}","variableFieldWhereUnknown":"Читается здесь","variableUnknown":"Переменная {name} читается, но ни диаграмма, ни код её не задают","variableUnknownWhere":"Ни один предыдущий шаг её не задаёт, и она не объявлена входом"},"runTests":"Запустить тесты","debugTests":"Отладить тесты","saidBy":{"elementsInFiles":"{count} элементов в {files} диаграммах","tasksInFiles":"{count} задач в {files} диаграммах","elementsInOneFile":"{count} элементов в {file}","one":"{label} в {file}","tasksInOneFile":"{count} задач в {file}"},"wording":{"caughtBy":"Ловится в","decidedBy":"Решается в","namedBy":"Имя задано в","readBy":"Читается в","setBy":"Задаётся в","startedBy":"Запускается в","usedBy":"Используется в"},"showAllCount":{"one":"Показать все: {count}","other":"Показать все: {count}","few":"Показать все: {count}","many":"Показать все: {count}"},"lens":{"covers":"покрывает {percent}% от {label}","starts":"запускает {label}"}},"comments":{"aCommentBelongsToAn":"Комментарий относится к элементу процесса, а не к тому, что нарисовано вокруг него на холсте.","addAComment":"Добавить комментарий","addComment":"Добавить комментарий","everyElementThatStillHas":"Все элементы, у которых ещё есть комментарий, собраны в списке за стрелкой назад.","everyOpenCommentInThe":"Здесь показан каждый открытый комментарий диаграммы.","hideResolved":"Скрыть решённые","noCommentsYet":"Комментариев пока нет.","noOpenComments":"Открытых комментариев нет.","sayWhatThisElementIs":"Напишите, для чего этот элемент или чего в нём не хватает","selectAnElementAndAdd":"Выберите элемент и добавьте к нему комментарий.","showOnTheDiagram":"Показать {label} на диаграмме","showResolved":"Показать решённые ({resolved})","thisElementCannotTakeComments":"К этому элементу нельзя добавить комментарий.","thisElementIsNoLonger":"Этого элемента больше нет на диаграмме.","waitingForADiagram":"Ожидание диаграммы.","openCount":{"one":"{count} открытых","other":"{count} открытых","few":"{count} открытых","many":"{count} открытых"},"openCommentCount":{"one":"{count} открытый комментарий","other":"{count} открытых комментария","few":"{count} открытых комментария","many":"{count} открытых комментариев"},"resolvedCount":{"one":"{count} решённых","other":"{count} решённых","few":"{count} решённых","many":"{count} решённых"},"openAndResolved":"{open} открытых, {resolved} решённых","openTheComments":"{title} — открыть комментарии","commentsOf":"{comments} к {element}","anonymous":"Аноним","resolvedState":"Решён","comment":"Комментарий","edit":"Изменить","save":"Сохранить","cancel":"Отмена","reopen":"Открыть снова","resolve":"Решить","delete":"Удалить","signedBy":"Подпись: {name}","writeTheFirstOneBelow":"Напишите комментарий ниже, чтобы начать обсуждение этого элемента."},"coverage":{"closeCoverage":"Закрыть покрытие","showTheWayThisTest":"Показать, как этот тест проходит процесс","testCoverage":"Покрытие тестами","coverage":"Покрытие","tests":"Тесты","allTests":"Все тесты","notReached":"Не достигнуто","coveredOf":"{covered} из {total}","noTestReportCoversThis":"Пока эту диаграмму не покрывает ни один отчёт о тестах. Запустите её тесты процессов через Camunda Process Test или на Camunda 7 с расширением покрытия тестов процессов, и здесь появится то, что они достигают.","testCount":{"one":"{count} тест","other":"{count} теста","few":"{count} теста","many":"{count} тестов"}},"debug":{"pausedHere":"Приостановлено здесь","instanceOf":"экземпляр {id}"},"deploy":{"clientId":"Идентификатор клиента","clientSecret":"Секрет клиента","confirm":"Развернуть {what} на {where}?","deployHook":"Хук развёртывания","deployToCancelled":"Развёртывание на {target} отменено","deployingTo":"Развёртывание {fileName} на {target}…","editConnection":"Изменить соединение…","editConnection2":"Изменить соединение","engineAddress":"Адрес движка","engineConnection":"Соединение с движком","enterTheClientId":"Введите идентификатор клиента","enterTheClientSecret":"Введите секрет клиента","enterThePasswordToSign":"Введите пароль для входа","enterTheUserNameTo":"Введите имя пользователя для входа","files":{"one":"{count} файл","other":"{count} файла","few":"{count} файла","many":"{count} файлов"},"keptInPenstockLocalYaml":"Хранится в penstock.local.yaml, который остаётся на этой машине.","keptInTheIdeS":"Хранится в хранилище паролей IDE.","notNeeded":"Не требуется","notReady":"{name} не развёрнут: у {target} пока нет адреса или пароля, задайте их в разделе «Соединение» редактора","notSetYet":"Пока не задано","nothingInToDeploy":"В {fileName} нечего развёртывать","nothingToDeploy":"Нечего развёртывать","profile":"Профиль","profileInForce":"действующий профиль","readingTheDiagram":"Чтение диаграммы…","runningTheDeployHook":"Запуск хука развёртывания…","saveAndDeploy":"Сохранить и развернуть","savedInTheIdeS":"Сохранено в хранилище паролей IDE. Введите новое, чтобы заменить.","setUpConnection":"Настроить соединение…","signIn":"Войти","signInHint":"{message}. Настройте вход в разделе «Соединение» редактора","succeededOn":"{message} на {target}","title":"Развернуть","tokenAddress":"Адрес токена","unableToDeploy":"Не удалось развернуть: {reason}","unableToSaveTheConnection":"Не удалось сохранить соединение: {failure}","userAndPassword":"Пользователь и пароль","whatWillBeSent":"Что будет отправлено","deploy":"Развернуть","problemLine":"строка {line}","andNMore":"и ещё {number}","definitionIsLive":"в силе {key} v{version}","notConfirmedInTime":"не подтверждено за {seconds} с: {key}","preDeployHookFailed":"Не удалось выполнить хук preDeploy, ничего не отправлено","refusedNothingDeployed":{"one":"Движок отклонил {count} файл и ничего не развернул:","other":"Движок отклонил {count} файла и ничего не развернул:","few":"Движок отклонил {count} файла и ничего не развернул:","many":"Движок отклонил {count} файлов и ничего не развернул:"},"answeredStatus":"Движок ответил {status}: {reason}","deployedFiles":"Развёрнуто: {files}","deployedAs":"Развёрнуто: {files} как {definitions}","definitionsNotShownInTime":"Движок принял развёртывание, но не показал его определения вовремя","oauthClient":"Клиент OAuth","user":"Пользователь","password":"Пароль","audience":"Аудитория","nameTenantAndTheRest":"Имя, арендатор и остальное задаются в penstock.yaml.","addressScheme":"Адрес движка должен начинаться с http:// или https://","tokenAddressScheme":"Адрес токена должен начинаться с http:// или https://","hookCancelled":"хук {stage}: отменён"},"diagramCheck":{"convert":"Конвертировать…","fix":"Исправить","noProblemsFound":"Проблем не найдено.","nothingToReportAcrossElements":"Замечаний нет ни по одному из {checked} элементов и связей. Проверка запускается снова при каждом изменении.","showTheDiagramConvertedFor":"Показать диаграмму, конвертированную для Camunda {target}, и выбрать, что записать","theCheckStartsOnIts":"Проверка запускается сама, как только диаграмма прочитана, и повторяется при каждом изменении.","howItRuns":"Как работает","drawing":"Рисунок","engine":"Движок","code":"Код","rules":"Правила","why":"Почему","error":"Ошибка","warning":"Предупреждение","templates":"Шаблоны элементов"},"dmn":{"addRules":"Добавить правила","addRulesFrom":"Добавить правила из {source}","cell":"Ячейка","change":"Изменить","checkTheDecisionsToSee":"Проверьте решения, чтобы увидеть проблемы здесь.","hitPolicy":"Политика попаданий {hitPolicy}","import":"Импорт {source}","intoTheOpenDecisionTable":"В открытую таблицу решений: ","intoTheSelectedTable":"В выбранную таблицу: ","openADecisionTableEnter":"Откройте таблицу решений, введите значения её входов и посмотрите, какие правила совпадают и что возвращает решение.","openTheRequirementsDiagram":"Открыть диаграмму требований","openTheRequirementsDiagramTo":"Откройте диаграмму требований, чтобы изменить имя решения, его входы и то, как к нему приходят правила.","requirements":"Требования","rule":"Правило","selectADecisionTableTo":"Выберите таблицу решений, чтобы попробовать её.","thePropertiesOfADecision":"Свойства решения меняются на диаграмме требований.","thisShouldBeADate":"Здесь должна быть дата в формате YYYY-MM-DD.","thisShouldBeANumber":"Здесь должно быть число.","thisShouldBeTrueOr":"Здесь должно быть true или false.","view":{"boxedExpression":"Выражение в рамке","decisionTable":"Таблица решений","drd":"Диаграмма требований","literalExpression":"Литеральное выражение"},"viewTooltip":"{kind}: {label}","count":{"rule":{"one":"{count} правило","other":"{count} правила","few":"{count} правила","many":"{count} правил"}},"readErrorAtLine":"{reason} (строка {line})","namedLikeAWorkbook":"{file} назван как книга, но это не книга.","noHeaderRow":"В файле нет строки заголовков с именами входов и выходов.","theFileIsEmpty":"Файл пуст.","workbookNotOpened":"Книгу открыть не удалось: возможно, она повреждена или защищена паролем.","workbookHasNoSheet":"В книге нет листа, который можно прочитать.","headerNeeds":"В заголовке указано {header}, а таблице нужно {wanted}","rowCannotBeRead":"Строку {line} не удаётся прочитать: «{cell}» не является сравнением, диапазоном или значением","pasteColumnsLeftOut":{"one":"{count} вставленный столбец не помещается в таблицу и не был вставлен.","few":"{count} вставленных столбца не помещаются в таблицу и не были вставлены.","many":"{count} вставленных столбцов не помещаются в таблицу и не были вставлены.","other":"{count} вставленных столбцов не помещаются в таблицу и не были вставлены."},"duplicateId":"Идентификатор {id} используется несколькими элементами, поэтому Penstock не может их различить","nothingChanges":"ничего не меняется","aNewTableWith":"новая таблица с {rules}","ruleChanges":{"one":"{count} правило меняется","other":"{count} правила меняются","few":"{count} правила меняются","many":"{count} правил меняются"},"rulesAreAdded":{"one":"{count} правило добавляется","other":"{count} правила добавляются","few":"{count} правила добавляются","many":"{count} правил добавляются"},"rulesAreRemoved":{"one":"{count} правило удаляется","other":"{count} правила удаляются","few":"{count} правила удаляются","many":"{count} правил удаляются"},"notADocument":"Файл не является документом DMN","notValid":"Файл не является корректным DMN: {reason}","saveAsCsv":"Сохранить таблицу решений как CSV","saveAsWorkbook":"Сохранить таблицу решений как книгу","csvIsOneCellPerColumn":"Значения через запятую, по одной ячейке на столбец","workbookHasInputsAndOutputsFirst":"Книга Excel, в первой строке которой входы и выходы","createFromSpreadsheet":"Создать таблицу решений из таблицы","importIntoTheTable":"Импортировать таблицу в таблицу решений","spreadsheetNamesTheInputs":"Книга Excel или CSV, в первой строке которой названы входы и выходы","notReadAsASpreadsheet":"Не удалось прочитать файл как таблицу.","importAction":"Импорт","theTableAlreadySays":"Таблица уже содержит эти данные, поэтому импортировать нечего. Отмените или смените файл и повторите.","oneUndoTakesTheImport":"Одна отмена возвращает весь импорт.","sheetName":"Таблица решений"},"dmnMode":{"decisionCheck":"Проверка решений","gotIt":"Понятно","noDecisionTableIsOpen":"Не открыта ни одна таблица решений, поэтому правилам некуда попасть. Откройте таблицу решений с диаграммы требований и импортируйте файл ещё раз.","noDecisionTableIsOpen2":"Не открыта ни одна таблица решений, поэтому правилам некуда было записаться. Откройте таблицу решений с диаграммы требований и импортируйте файл ещё раз.","noRulesOverlapAndEvery":"Правила не пересекаются, и у каждого входа есть правило.","theDecisionTableWasSaved":"Таблица решений сохранена в {saved}.","theRulesWereAddedTo":"Правила добавлены в открытую таблицу решений. Отмена вернёт их обратно.","theRulesWereReplacedUndo":"Правила заменены. Отмена вернёт их обратно."},"editor":{"checkTitle":"Проверка диаграммы","configFailed":"Не удалось загрузить конфигурацию проекта.","convert":"Конвертировать","convertText":"Будут конвертированы все свойства и атрибуты camunda: в operaton:. Продолжить?","convertTitle":"Конвертация пространства имён","copiedImage":"Скопировано как изображение","copyImageFailed":"Не удалось скопировать изображение","deleteFailed":"Не удалось удалить элементы","exportFailed":"Не удалось экспортировать: {message}","exportOpenFailed":"Не удалось открыть окно экспорта","exported":"Диаграмма экспортирована в {format}","importFailed":"Не удалось импортировать диаграмму: {message}","layoutFailed":"Не удалось выполнить раскладку диаграммы","noLayout":{"laidOut":"У этого файла не было раскладки. Penstock её построил; файл не меняется, пока вы не сохраните.","placed":"У этого файла не было раскладки, поэтому Penstock разместил элементы простой сеткой. Автоматическая раскладка (Pro) расставит их правильно."},"layoutBadShape":"Не удалось выполнить раскладку диаграммы: у {element} фигура, которую нельзя нарисовать ({problem}). Исправьте её границы в файле и повторите.","layoutBadWaypoint":"путевая точка находится в ({x}, {y})","layoutTooSlow":"Не удалось разложить диаграмму за {seconds} с. Она слишком большая или запутанная для автоматической раскладки. Диаграмма не изменена.","layoutAnElement":"элемента","loadFailed":"Не удалось загрузить диаграмму: {message}","loading":"Загрузка...","namespaceMessage":"Это проект Operaton, но диаграмма использует пространство имён Camunda 7.","namespaceTitle":"Неверное пространство имён движка","noMatch":"В этом проекте ничего не соответствует {reference}","noTest":"В этом проекте нет теста, использующего {name}","noUsage":"В этом проекте нет кода, использующего {name}","noWorker":"В этом проекте нет кода, реализующего {name}","reloadFailed":"Файл изменился, и его не удалось прочитать как BPMN","saveFailed":"Не удалось сохранить изменения","saveRefused":"Не удалось сохранить изменения: {reason}","stopSimulation":"Остановите симуляцию токенов перед редактированием диаграммы","traceFailed":"Не удалось прочитать трассировку этого запуска","unknownError":"Неизвестная ошибка","pasteEmpty":"Буфер обмена пуст. Сначала скопируйте элемент диаграммы.","pasteNotDiagram":"В буфере обмена текст, а не элементы диаграммы, поэтому вставлять нечего.","pasteOtherDiagram":"В буфере обмена элементы другого типа диаграммы, поэтому здесь вставлять нечего.","pasteUnreadable":"Penstock не может прочитать буфер обмена в этом браузере. Вставьте элементы на диаграмму с клавиатуры."},"editorShell":{"close":"Закрыть {title}","collapsePalette":"Свернуть палитру","openPalette":"Открыть палитру","showAllMore":"Показать все (ещё {more})","useCheckInTheToolbar":"Чтобы найти проблемы, нажмите «Проверка» на панели инструментов."},"engineQuestion":{"itDecidesThePaletteAnd":"Он определяет палитру и свойства и попадает в penstock.yaml. Диаграмма откроется, как только вы выберете движок.","theEngineCouldNotBe":"Не удалось сохранить движок: {error}","whichEngineRunsThisDiagram":"Какой движок выполняет эту диаграмму?"},"files":{"connectorsFailed":"Не удалось использовать каталог коннекторов (HTTP {status})","exportAs":"Экспортировать как {format}","saveTitle":"Сохранить файл {extension}"},"form":{"checkTheFormToSee":"Проверьте форму, чтобы увидеть проблемы здесь.","everyFieldWritesItsOwn":"Каждое поле записывает свою переменную, а каждый вариант означает что-то своё.","nothingToPreviewYet":"Пока нечего показывать.","thePreviewFillsInAs":"Предпросмотр появится, как только форма будет прочитана.","theReasonIsOnThe":"Причина указана на холсте. Исправьте файл, и Penstock прочитает его снова.","thisFormCouldNotBe":"Эту форму не удалось прочитать, поэтому проверять нечего."},"formMode":{"formCheck":"Проверка формы"},"formPreview":{"inputDataOfTheForm":"Входные данные формы в формате JSON","sample":"Пример {key}","sampleData":"Пример данных","theInputHasToBe":"Входные данные должны быть объектом JSON.","theInputIsNotValid":"Входные данные не являются корректным JSON: {failure}","inputData":"Входные данные","outputData":"Выходные данные","fieldsNeedAttention":{"one":"{count} поле требует внимания","other":"{count} поля требуют внимания","few":"{count} поля требуют внимания","many":"{count} полей требуют внимания"}},"importDiagram":{"aDrawIoVisioSignavio":"Диаграмма draw.io, Visio, Signavio или Bizagi","diagramImported":"Диаграмма импортирована","importDiagram":"Импорт диаграммы","saveTheImportedDiagram":"Сохранить импортированную диаграмму","theBpmn20File":"Создаваемый файл BPMN 2.0","thisFileCouldNotBe":"Этот файл не удалось импортировать","why":{"assumed":"Их определили по внешнему виду. Проверьте, что это именно то, что нужно.","lost":"В BPMN 2.0 для них нет места, поэтому их нет в новой диаграмме.","unmapped":"У них нет смысла в BPMN, поэтому их нет в новой диаграмме."},"savedAs":"Сохранено как {path}","everythingInTheFileWas":"Всё в файле сопоставлено.","connectorsKeepTheRoute":"Коннекторы сохраняют маршрут, которым их нарисовали. Автораскладка может привести результат в порядок."},"lint":{"nothingToShowOnThe":"На диаграмме нечего показывать","showWhereTheyAreOn":"Показать, где они на диаграмме"},"live":{"userTasks":"Пользовательские задачи","noUserTasksWaiting":"Для этого экземпляра нет ожидающих пользовательских задач.","unableToLoadTasks":"Не удалось загрузить пользовательские задачи из движка.","unableToCompleteTask":"Не удалось завершить пользовательскую задачу.","unableToConnect":"Не удалось подключиться к движку.","completing":"Завершение…","taskCompleted":"Задача завершена.","askTheEngineAgain":"Спросить движок снова","askingTheEngine":"Запрос к движку…","history":"История","noFinishedInstances":"Завершённых экземпляров не найдено.","noFinishedInstancesHint":"Экземпляры, которые были завершены или отменены, появятся здесь.","askingHistory":"Запрос завершённых экземпляров у движка…","compareWithWhatTheEngine":"Сравнить с тем, что видел движок","isNotDeployed":"{processId} не развёрнут.","itIsNotOnYet":"Его ещё нет на {where}. Разверните диаграмму, чтобы увидеть его экземпляры.","noEngineConnected":"Движок не подключён.","noInstanceIsRunning":"Ни один экземпляр не выполняется.","nothingIsWaitingOrHas":"На {where} ничего не ожидает и нет инцидентов.","openTheCodeThatRuns":"Открыть код, который выполняет эту задачу","openInTasklist":"Открыть в Tasklist","readTheVariables":"Прочитать переменные","readingWhichInstancesOfThis":"Читает, какие экземпляры этой диаграммы выполняются и на чём они ожидают.","refresh":"Обновить","setUpADeploymentProfile":"Настройте профиль развёртывания с адресом и, если он нужен, паролем, чтобы видеть экземпляры, ожидающие на каждой задаче, и их инциденты.","showOnTheDiagram":"Показать {selected} на диаграмме","theEngineCouldNotBe":"Не удалось прочитать движок.","use":"Использовать","useThisInstanceForAn":"Использовать этот экземпляр для выражения","waitingHere":"Здесь ожидают: {waiting}","instance":"Экземпляр","tryOnInstance":"Попробовать на экземпляре","variables":"Переменные","neverSetInProduction":"Никогда не задаётся в продакшене","unusedInTheModel":"Не используется в модели","incidents":"Инциденты","waiting":"Ожидание","credentialsMayNotAllow":"Движок отклонил запрос ({status}): учётные данные профиля могут не разрешать чтение экземпляров процесса","answeredStatus":"Движок ответил {status}","answeredNotJson":"Движок ответил чем-то, что не является JSON","localEngine":"Локальный {engine}","theEngine":"движок","processVersion":"версия процесса {version}","namedProcessVersion":"{process}, версия {version}","incidentsOn":{"one":"{count} инцидент · {what}","other":"{count} инцидента · {what}","few":"{count} инцидента · {what}","many":"{count} инцидентов · {what}"},"incidentsBadge":{"one":"{count} с инцидентом","other":"{count} с инцидентом","few":"{count} с инцидентом","many":"{count} с инцидентом"},"askingWhichInstancesRun":"Спрашиваем у {where}, какие экземпляры {process} выполняются.","noInstanceRunning":"На {where} не выполняется ни один экземпляр {process}.","secretNotResolved":"{value} — секрет, поэтому движок его не разрешил","selectATaskToTryOn":"Выберите задачу, шлюз или поток, чтобы проверить его условия и сопоставления на {instance}.","trying":"Пробуем","try":"Попробовать","reading":"Читаем","select":"Выбрать {name}","sevenCannotEvaluateHere":"В Camunda 7 нет способа вычислить выражение. Нужна Camunda 8.9 или новее, поэтому доступны только переменные экземпляра.","theModelAndTheEngineAgree":"Модель и движок совпадают во всех именах переменных.","theEngineHasSeenThese":"Движок видел эти переменные, а в диаграмме их никто не называет.","asking":"Спрашиваем","thisNeedsCamunda":"Для этого нужна Camunda {version}.","instancesHere":{"one":"{count} экземпляр","other":"{count} экземпляра","few":"{count} экземпляра","many":"{count} экземпляров"},"urlAt":"{url} на {when}","startInstance":"Запустить экземпляр","startInstanceEllipsis":"Запустить экземпляр…","startInstanceTooltip":"Запустить экземпляр процесса на подключенном движке","startingInstance":"Запуск…","processDefinition":"ID процесса","variablesJson":"Переменные (JSON)","variablesHelp":"JSON-объект с переменными для передачи в экземпляр","variablesInvalidJson":"Переменные должны быть корректным JSON","variablesMustBeObject":"Переменные должны быть JSON-объектом","instanceStarted":"Запущен экземпляр {id}","unableToStartInstance":"Не удалось запустить экземпляр","retry":"Повторить","retrying":"Повторяется","retryIncident":"Повторить этот инцидент","unableToRetryIncident":"Не удалось повторить инцидент: {reason}","cancelInstance":"Отменить инстанс","cancelling":"Отмена","cancelInstanceTitle":"Отменить инстанс","cancelInstanceConfirm":"Отменить экземпляр процесса {instance}?","unableToCancelInstance":"Не удалось отменить экземпляр: {reason}","sendMessage":"Отправить сообщение","broadcastSignal":"Транслировать сигнал","messageName":"Имя сообщения","signalName":"Имя сигнала","correlationKey":"Ключ корреляции","sending":"Отправка","broadcasting":"Трансляция","send":"Отправить","broadcast":"Транслировать","unableToSendMessage":"Не удалось отправить сообщение: {reason}","unableToBroadcastSignal":"Не удалось транслировать сигнал: {reason}"},"main":{"fileChangedOnDisk":"Файл на диске изменился","keepEditing":"Продолжить редактирование","theDiagramWasChangedOutside":"Диаграмма была изменена вне редактора. Перезагрузка загрузит эти изменения и отбросит несохранённое; сохранение редактора означает, что следующее сохранение перезапишет их."},"marketplace":{"anyElement":"Любой элемент","backToTheTemplates":"Назад к шаблонам","category":"Категория","checkForUpdates":"Проверить обновления","checkingForANewerRelease":"Проверка наличия новой версии…","connectorTemplates":"Шаблоны коннекторов","default":"По умолчанию:","deprecated":"Устарело","downloadingTheConnectorTemplatesFrom":"Загрузка шаблонов коннекторов из GitHub…","elementType":"Тип элемента","isNotInTheProject":"{id}{version} нет ни в проекте, ни в загруженных шаблонах коннекторов","loadingTemplateDetails":"Загрузка сведений о шаблоне…","needsANewerCamundaEngine":"Нужен более новый движок Camunda, чем тот, на который настроена эта диаграмма","noTemplateFitsThisDiagram":"Ни один шаблон не подходит к движку этой диаграммы","noTemplateMatchesTheFilters":"Ни один шаблон не соответствует фильтрам","otherProperties":"Другие свойства","saveElementTemplate":"Сохранение шаблона элемента: {name}","searchTemplatesByNameDescription":"Искать шаблоны по имени, описанию или ключевому слову","selectLocationToSaveThe":"Выберите место для сохранения шаблона элемента","templateInstalled":"Шаблон «{name}» установлен","templateNotDownloaded":"Шаблон не загружен","download":"Скачать","templateSavedPenstockFindsTemplates":"Шаблон «{name}» сохранён. Penstock ищет шаблоны в папке .camunda/element-templates над диаграммой; укажите этот файл в elementTemplates в penstock.yaml, чтобы использовать его отсюда.","theConnectorTemplatesCouldNot":"Не удалось загрузить шаблоны коннекторов","thisDiagramTargetsCamunda":"Эта диаграмма настроена на Camunda {engineVersion}","type":{"Boolean":"Флажок","Dropdown":"Список","Hidden":"Скрытое поле","Number":"Число","String":"Текст","Text":"Многострочный текст"},"unableToInstallTheTemplate":"Не удалось установить шаблон: {failure}","viewDocumentation":"Открыть документацию","overview":"Обзор","appliesTo":"Применимо к","engine":"Движок","properties":"Свойства","configurationProperties":"Свойства конфигурации","details":"Подробности","all":"Все","installedOnly":"Только установленные","clearFilters":"Сбросить фильтры","today":"сегодня","todayAt":"сегодня в {time}","tomorrowAt":"завтра в {time}","yesterday":"вчера","daysAgo":{"one":"{count} день назад","other":"{count} дня назад","few":"{count} дня назад","many":"{count} дней назад"},"notAmongConnectors":"{ids} нет среди опубликованных шаблонов коннекторов Camunda","thisDiagramTargets":" — эта диаграмма настроена на {version}","camundaConnectors":"Коннекторы Camunda {ref}","checked":", проверено {when}","couldNotCheckForANewerRelease":"Не удалось проверить наличие новой версии: {error}","couldNotDownloadConnectors":"Не удалось загрузить шаблоны коннекторов из GitHub: {error}","triedAgainAfter":" Следующая попытка через {when}.","templateCount":{"one":"{count} шаблон","other":"{count} шаблона","few":"{count} шаблона","many":"{count} шаблонов"},"forCamunda":" для Camunda {version}","unnamed":"Без имени","feelIs":"FEEL: {feel}","options":"Варианты:","install":"Установить","installed":"Установлено","installing":"Установка…","configurable":"настраиваемых: {number}","showForNewerEngines":"Показать {number} для более новых движков"},"migration":{"convertUnchanged":"Конвертировать без изменений","needsWork":"Требует работы","reviewAfterConverting":"Проверить после конвертации","saveTheDiagramFirstOnly":"Сначала сохраните диаграмму: конвертировать можно только диаграмму в файле.","theDiagramCouldNotBe":"Не удалось прочитать диаграмму.","change":{"async":"Асинхронное продолжение удаляется","jobWorkerTask":"Превращается в задачу воркера с типом задания {jobType}","retries":"Цикл повторов становится {retries} повторами","fieldHeaders":"Внедрения полей {fields} становятся заголовками задачи","conditionFeel":"Условие записывается как выражение FEEL","conditionRewritten":"Условие переписывается как выражение FEEL","collection":"Коллекция {collection} становится входной коллекцией","loopCount":"Счётчик цикла {cardinality} становится входной коллекцией","completionCondition":"Условие завершения переписывается как выражение FEEL","messageName":"Имя сообщения {name} записывается как выражение FEEL","timer":"Таймер переписывается как выражение FEEL","errorVariable":"{source} сохраняется в переменную {variable} сопоставлением выходов","feelScript":"Скрипт превращается в скриптовое выражение FEEL","userTask":"Превращается в задачу пользователя Camunda","assignment":"Назначение превращается в определение назначения","formRef":"Форма {form} подключается как Camunda Form","externalForm":"Ключ формы {formKey} сохраняется как ссылка на внешнюю форму","generatedForm":"Поля формы записываются как Camunda Form {form}","calledDecision":"Вызывает решение {decision} и хранит его результат в {result}","calledProcess":"Вызывает процесс {process}","listener":"Слушатель {event} {name} превращается в воркер с типом задания {jobType}","platform":"Помечено как диаграмма Camunda {target}","dmnVersion":"Решения переносятся в DMN 1.3","expressionRewritten":"Выражение переписывается как выражение FEEL","dmnHistoryTimeToLive":"Время жизни истории удаляется, Camunda 8 его не использует","dmnPlatform":"Помечен как файл решений Camunda {target}","formPlatform":"Помечено как форма Camunda {target}","versionTag":"Тег версии {tag} сохраняется как тег версии Camunda 8","ioMapping":{"one":"{count} входной или выходной параметр превращается в сопоставление входов и выходов","other":"{count} входных или выходных параметра превращаются в сопоставление входов и выходов","few":"{count} входных или выходных параметра превращаются в сопоставление входов и выходов","many":"{count} входных или выходных параметров превращаются в сопоставление входов и выходов"},"asyncBefore":"асинхронное продолжение","removed":"удалено","camunda7Implementation":"реализация Camunda 7","userTaskBefore":"задача пользователя"},"extraFile":{"form":"форма из {where}"},"failure":{"notBpmn":"Файл не является диаграммой BPMN, которую может прочитать Penstock.","notDmn":"Файл не является диаграммой DMN, которую может прочитать Penstock.","notForm":"Файл не является формой, которую может прочитать Penstock."},"detail":{"complexGateway":"В Camunda 8 нет составного шлюза.","complexGatewayAction":"Смоделируйте объединение шлюзом «включительно» или параллельным и условиями.","transaction":"В Camunda 8 нет транзакций и событий отмены.","transactionAction":"Смоделируйте это подпроцессом с граничным событием ошибки и компенсацией.","mappingValue":"Значение имеет тип {type}, который конвертер не читает.","noMapping":"В Camunda 8 у {element} нет сопоставлений {kind}.","standardLoop":"В Camunda 8 нет стандартных циклов.","standardLoopAction":"Смоделируйте цикл шлюзом и обратным потоком управления либо как активность с несколькими экземплярами.","cancelEvent":"В Camunda 8 нет транзакций и событий отмены.","cancelEventAction":"Смоделируйте это событием ошибки и компенсацией.","errorCode":"Коды ошибок в Camunda 8 фиксированы или задаются воркером, который их выбрасывает","decisionBound":"Решение {name}","callBound":"Вызов {name}","noTarget":"У привязки переменной нет приёмника.","decisionNamed":"Решение {name}","inputNamed":"Вход {name}","ruleCondition":"Условие правила {rule}","ruleOutput":"Выход правила {rule}","listenersOldTarget":"В Camunda 8 слушатели исполнения появились в 8.6; эта конвертация выполняется для {target}.","listenersNoSequenceFlow":"В Camunda 8 у потоков управления нет слушателей.","listenersNoOn":"В Camunda 8 у {element} нет слушателей исполнения.","listenersEndOnly":"В Camunda 8 у {element} выполняются только слушатели завершения.","listenersFields":"Ему передаются внедрённые поля, которых у слушателей Camunda 8 нет.","listenersExpression":"Это выражение или скрипт, а слушатель в Camunda 8 — это задание для воркера.","taskListenersOldTarget":"В Camunda 8 слушатели задач появились в 8.8; эта конвертация выполняется для {target}.","taskListenersNoEvent":"В Camunda 8 нет события {event} для слушателей задач."},"juel":{"stringOpen":"строка в нём не закрыта","character":"в нём используется «{what}», у чего нет аналога в FEEL","trailing":"он продолжается после законченного выражения в «{what}»","expected":"ожидалось «{what}», а там «{found}»","propertyName":"после «.» не хватает имени свойства","tooComplex":"она слишком длинная или слишком глубоко вложена для преобразования","wordAsValue":"на месте значения стоит «{what}»","endsEarly":"он заканчивается слишком рано","tokenAsValue":"на месте значения стоит «{what}»","contextObject":"он читает «{what}», что есть только внутри движка Camunda 7","dollarInName":"имя «{what}» содержит «$», что невозможно для имени в FEEL","reservedWord":"«{what}» — зарезервированное слово в FEEL","localVariable":"локальная переменная читается по имени; в Camunda 8 имя разрешается через области видимости, поэтому проверьте, что её не перекрывает внешняя переменная","businessKey":"он читает business key, которого в Camunda 8 нет; переносите его как переменную процесса","engineId":"он читает идентификатор движка, которого выражение FEEL в Camunda 8 не видит","executionCall":"он вызывает execution.{what}(), что выполняется внутри движка Camunda 7","takesOne":"{what}() здесь принимает один аргумент","takesNone":"{what}() здесь не принимает аргументов","equalsTakesOne":"equals() здесь принимает один аргумент","size":"{target}.size() стал count(), что работает, когда переменная это список; для отображения читайте его записи","javaCall":"он вызывает метод Java {what}(), а FEEL не умеет вызывать Java","exponent":"он пишет число с показателем степени, который FEEL не читает","enginePath":"он читает {target}.{what}, что есть только внутри движка Camunda 7","indexShifted":"индекс списка сдвинут на единицу: FEEL считает элементы списка с 1, Java с 0","computedIndex":"он читает элемент по вычисленному индексу, а FEEL считает элементы списка с 1, тогда как Java с 0","juelFunction":"он вызывает {what}() — функцию, которую даёт Camunda 7, а FEEL нет","namespacedFunction":"он вызывает функцию {prefix}:{what}(), которой в Camunda 8 нет","empty":"он использует «empty», которое истинно сразу для null, «» и пустого списка или отображения; FEEL нужно знать, что именно имеется в виду","textPlus":"он складывает текст через «+», чего не допускает Java EL, а FEEL считает соединением строк","expressionOpen":"выражение в нём не закрыто «}»","joinedStrings":"текст с выражениями внутри стал склеенными строками; значение null делает весь текст null в FEEL, тогда как Camunda 7 писала пустую строку"},"worker":{"becomes":{"taskListener":"задание слушателя задачи типа {jobType} по событию {event} (Camunda 8.8 или новее)","executionListener":"задание слушателя исполнения типа {jobType} по событию {event} (Camunda 8.6 или новее)","topic":"воркер типа {jobType}; обработчик внешнего задания переносится в воркер Camunda 8","expression":"воркер типа {jobType}, выполняющий вызов, который делало выражение","class":"воркер типа {jobType}"},"note":{"businessKey":"Он читает business key. В Camunda 8 его нет: переносите значение как переменную процесса.","engineServices":"Он использует {services}, которых у воркера Camunda 8 нет: используйте клиент Camunda или сообщение.","readsAllVariables":"Он читает все переменные. Воркер Camunda 8 получает все переменные, если не перечислит нужные."}},"report":{"theProject":"проект","heading":"Миграция с Camunda 7 на Camunda 8: {name}","onDate":" от {date}","automatic":"Ещё {count} конвертируются без изменений.","needsWork":"Требует работы","reviewAfter":"Проверить после конвертации","notInProject":"нет в этом проекте","nothingToMigrate":"В этом проекте нет диаграмм, решений или форм Camunda 7: мигрировать нечего.","scope":"Объём","columnStatus":"Состояние","columnFiles":"Файлы","columnMeaning":"Значение","costs":"Сколько стоит переход","blockers":"Блокеры","blockersHint":"В Camunda 8 нет формы для них. Смоделируйте их заново до конвертации.","blockerWhere":"в {where} ({path}). {action}","files":"Файлы","columnFile":"Файл","columnNeedsWork":"Требует работы","columnReview":"Проверить","columnConverts":"Конвертируется","finding":"{where}: {title}. {action}","code":"Код","codeHint":"Во что превращается каждый делегат Java, обработчик внешнего задания и слушатель. Penstock записывает заготовку воркера рядом с кодом и никогда не поверх него.","columnValue":"Класс, бин или тема","columnWhere":"Где","columnBecomes":"Превращается в","columnNotes":"Заметки","apis":"Camunda 7 API в коде Java","apisHint":"Переписывание самого кода лучше делать в сборке, где ревьюер видит различие: используйте рецепты OpenRewrite из руководства по миграции Camunda.","dataMigration":"Работающие экземпляры и история","findingWhere":"{where}: {title}.","status":{"ready":"Готово","converts":"Конвертируется","needsWork":"Требует работы","blocked":"Заблокировано"},"meaning":{"ready":"делать нечего","converts":"Penstock конвертирует это; остаток — это проверка","needsWork":"часть работы должен выполнить человек","blocked":"использует то, для чего в Camunda 8 нет формы"},"effort":{"workers":"Воркеров нужно написать","expressions":"Выражений нужно переписать","scripts":"Скриптов нужно заменить","listeners":"Слушателей нужно перенести","forms":"Форм нужно перестроить или подключить","calledProcesses":"Вызываемых процессов нужно проверить","decisions":"Вызываемых решений"},"target":"Цель: Camunda {target}. Записано Penstock{on}.","targetDated":"Цель: Camunda {target}. Записано Penstock{on}.","dataMigrator":"Data Migrator от Camunda: {link}","fileCount":{"one":"{count} файл","other":"{count} файла","few":"{count} файла","many":"{count} файлов"},"apiImports":"{api}: импортов в {files} — {imports}"},"rules":{"java-class":{"title":"Класс Java {className} становится типом задания {jobType}","detail":"Camunda 8 не выполняет Java внутри движка. Сервисная задача создаёт задание, и его подхватывает воркер в вашем приложении.","action":"Напишите воркер для {jobType}; Penstock сгенерирует его по классу."},"delegate-expression":{"title":"Делегат {delegate} становится типом задания {jobType}","detail":"Camunda 8 не умеет искать бин Spring. Задача создаёт задание, и его подхватывает воркер.","action":"Напишите воркер для {jobType}; Penstock сгенерирует его по бину."},"delegate-expression-dynamic":{"title":"Делегат выбирается выражением {expression}","detail":"Бин выбирается во время работы процесса, а тип задания в Camunda 8 либо фиксирован, либо задаётся выражением FEEL над переменными.","action":"Задайте задаче тип задания или выражение FEEL, которое возьмёт его из переменной."},"expression":{"title":"Выражение {expression} становится типом задания {jobType}","detail":"Camunda 8 не может вызвать метод бина из диаграммы. Вызов переносится в воркер.","action":"Напишите воркер для {jobType}, выполняющий вызов, который делало {expression}.","withResult":{"action":"Напишите воркер для {jobType}, выполняющий вызов, который делало {expression}, и завершающий задание переменной {result}."}},"expression-unknown":{"title":"Выражение {expression} выполняет код внутри движка","detail":"Camunda 8 вычисляет в диаграмме только FEEL, поэтому у этого выражения нет аналога.","action":"Перенесите то, что оно делает, в воркер или, если оно только вычисляет значение, в сопоставление выходов FEEL."},"external-task":{"title":"Тема внешнего задания {topic} становится типом задания {jobType}","detail":"Внешние задания и задания — одна идея. Меняется клиент воркера: клиент внешних заданий Camunda 7 становится воркером Camunda 8.","action":"Перенесите обработчик {topic} в воркер; Penstock сгенерирует его по обработчику."},"external-task-priority":{"title":"Приоритет внешнего задания теряется","detail":"Задания одного типа в Camunda 8 выдаются в порядке создания.","action":"Делать нечего, если только порядок не был важен; тогда дайте срочной работе свой тип задания."},"connector":{"title":"У коннектора Camunda 7 {connector} нет аналога в Camunda 8","detail":"Коннекторы Camunda 7 (http-connector, soap-http-connector) не входят в Camunda 8. У Camunda 8 свои коннекторы, которые настраиваются через шаблоны элементов.","action":"Примените к задаче шаблон коннектора REST или SOAP из Camunda 8 или напишите воркер."},"field-injection":{"title":"Внедрённые поля {fields} становятся заголовками задачи","detail":"В Camunda 8 нет внедрения полей. Фиксированные значения идут вместе с заданием как пользовательские заголовки, которые читает воркер.","action":"Читайте их в воркере из пользовательских заголовков задания."},"field-injection-expression":{"title":"Внедрённое поле {field} является выражением","detail":"Заголовок задачи — это фиксированный текст; его нельзя вычислить во время работы процесса.","action":"Передавайте значение сопоставлением входов с выражением FEEL и читайте его в воркере как переменную."},"async":{"title":"Асинхронное продолжение теряется","detail":"В Camunda 8 нет транзакций через несколько шагов: каждое задание и каждое ожидание — отдельная единица, поэтому asyncBefore и asyncAfter там ничего не значат.","action":"Делать нечего."},"retries":{"title":"Цикл повторов {cycle} становится {retries} повторами","detail":"Camunda 8 считает повторы на задаче; паузу между ними задаёт воркер, когда он отклоняет задание.","action":"Задайте паузу в команде fail воркера, если интервал был важен."},"retries-dropped":{"title":"Цикл повторов {cycle} теряется","detail":"В Camunda 8 повторы есть только у задач, которые создают задание.","action":"Делать нечего, если только этот элемент не опирался на повторы; тогда проверьте, как он отклоняется в Camunda 8."},"job-priority":{"title":"Приоритет задания {priority} переносится","detail":"В Camunda 8 приоритеты заданий появились в 8.8.","action":"Делать нечего."},"job-priority-dropped":{"title":"Приоритет задания {priority} теряется","detail":"В версии Camunda 8, для которой выполняется эта конвертация, нет приоритетов заданий.","action":"Делать нечего, если только порядок не был важен; тогда дайте срочной работе свой тип задания."},"input-output":{"title":"Сопоставление входов и выходов превращается в сопоставление FEEL","detail":"Camunda 8 сопоставляет переменные выражениями FEEL; каждый параметр Camunda 7 становится одним выражением.","action":"Делать нечего."},"input-output-manual":{"title":"Сопоставление {name} не удаётся конвертировать","detail":"{reason}","action":"Запишите сопоставление как выражение FEEL."},"input-output-script":{"title":"Сопоставление {name} выполняет скрипт {format}","detail":"Camunda 8 сопоставляет переменные только через FEEL.","action":"Запишите сопоставление как выражение FEEL или вычислите значение в воркере."},"condition":{"title":"Условие {expression} превращается в {feel}","detail":"Условия в Camunda 8 — это выражения FEEL.","action":"Делать нечего."},"expression-review":{"title":"{expression} превратилось в {feel}","detail":"{reason}","action":"Проверьте, что выражение FEEL значит то же для значений, которые видит этот процесс."},"expression-manual":{"title":"Выражение {expression} не удаётся конвертировать","detail":"Конвертер остановился, потому что {reason}.","action":"Запишите его как выражение FEEL."},"script-condition":{"title":"Условие является скриптом {format}","detail":"Условия в Camunda 8 — только выражения FEEL.","action":"Запишите условие на FEEL."},"script-task":{"title":"Скрипт {format} не выполняется в Camunda 8","detail":"Camunda 8 выполняет задачу со скриптом как выражение FEEL или как задание. Скриптам Groovy, JavaScript и Python негде выполняться.","action":"Перепишите скрипт как выражение FEEL или превратите задачу в воркер, который выполняет код."},"script-task-feel":{"title":"Скрипт FEEL превращается в выражение FEEL","detail":"Camunda 8 выполняет задачу со скриптом FEEL внутри движка, а её результат кладёт в {variable}.","action":"Делать нечего.","noResult":{"title":"Результат скрипта FEEL попадает в {variable}","detail":"Camunda 8 нужна переменная результата для задачи со скриптом FEEL, а у задачи Camunda 7 её не было.","action":"Переименуйте {variable}, если результат должен кто-то читать."}},"script-resource":{"title":"Скрипт читается из {resource}","detail":"Camunda 8 не загружает скрипты из ресурсов.","action":"Перепишите скрипт как выражение FEEL или превратите задачу в воркер."},"execution-listener":{"title":"Слушатель {event} {name} превращается в тип задания {jobType}","detail":"Слушатели исполнения в Camunda 8 — тоже задания: процесс ждёт, пока их завершит воркер.","action":"Напишите воркер для {jobType}; он выполняется до продолжения элемента, поэтому держите его быстрым."},"execution-listener-unsupported":{"title":"У слушателя {event} {name} нет аналога в Camunda 8","detail":"{reason}","action":"Перенесите то, что делает слушатель, в отдельную задачу или в воркер перед ней."},"task-listener":{"title":"Слушатель задачи {event} {name} превращается в тип задания {jobType}","detail":"Слушатели задач в Camunda 8 — это задания, которых ждёт задача пользователя, и они могут исправить или отклонить происходящее.","action":"Напишите воркер для {jobType}."},"task-listener-unsupported":{"title":"У слушателя задачи {event} {name} нет аналога в Camunda 8","detail":"{reason}","action":"Перенесите то, что делает слушатель, в воркер вокруг задачи или в приложение, которое работает с задачей."},"user-task":{"title":"Задача пользователя превращается в задачу пользователя Camunda","detail":"Camunda 8 ведёт задачу в движке вместе с её назначением, кандидатами, датами и приоритетом.","action":"В диаграмме делать нечего; приложение со списком задач меняется на Tasklist или на API задач пользователя Camunda 8."},"user-task-expression":{"title":"{name} {expression} превратилось в {feel}","detail":"{reason}","action":"Проверьте значение в Camunda 8."},"user-task-priority-range":{"title":"Приоритет {priority} вне диапазона от 0 до 100","detail":"Приоритеты задач пользователя в Camunda 8 идут от 0 до 100.","action":"Пересчитайте приоритет в нужном диапазоне."},"user-task-priority-dropped":{"title":"Приоритет {priority} теряется","detail":"В версии Camunda 8, для которой выполняется эта конвертация, нет приоритета задачи пользователя.","action":"Делать нечего, если только список задач не сортировался по нему."},"form-embedded":{"title":"У встроенной формы {formKey} нет аналога в Camunda 8","detail":"Tasklist в Camunda 8 показывает только Camunda Forms; HTML-формы и их JavaScript не переносятся.","action":"Перестройте форму как Camunda Form и подключите её или оставьте своё приложение со списком задач и передавайте ключ как внешнюю ссылку.","here":{"title":"Здесь у ключа формы {formKey} нет аналога в Camunda 8"}},"form-generated":{"title":"Сгенерированная форма превращается в Camunda Form {form}","detail":"Penstock записывает Camunda Form с одним полем на каждое поле формы и подключает её. Проверки и свойства, которые были у полей формы, переносятся туда, где у Camunda Forms есть что-то похожее.","action":"Откройте {form} и проверьте, что она выглядит и проверяется как прежняя."},"form-generated-partly":{"title":"Часть сгенерированной формы не перенеслась: {lost}","detail":"У Camunda Forms нет для этого аналога.","action":"Перестройте эту часть в редакторе форм."},"form-camunda":{"title":"Camunda Form {form} подключается по своему идентификатору","detail":"Camunda 8 подключает форму по её идентификатору и разворачивает вместе с диаграммой.","action":"Разверните форму вместе с диаграммой."},"form-camunda-unknown":{"title":"Camunda Form {form} не найдена в проекте","detail":"Camunda 8 подключает форму по идентификатору внутри неё, а Penstock не смог его прочитать. Вместо него использовано имя файла.","action":"Проверьте, что идентификатор формы в диаграмме совпадает с идентификатором внутри формы."},"form-binding-version":{"title":"Форма привязана к версии {version}","detail":"Camunda 8 привязывает форму по latest, по развёртыванию или по тегу версии, а не по номеру версии.","action":"Привяжите её по развёртыванию или задайте форме тег версии."},"form-external":{"title":"Ключ формы {formKey} превращается во внешнюю ссылку","detail":"Camunda 8 передаёт внешнюю ссылку в список задач, как Camunda 7 передавала ключ формы.","action":"Проверьте, что ваше приложение со списком задач читает внешнюю ссылку."},"assignment-review":{"title":"{name} {expression} является списком в Camunda 7","detail":"Camunda 8 ждёт кандидатов как список FEEL или как текст со значениями через запятую.","action":"Проверьте, что выражение даёт список или текст со значениями через запятую."},"initiator":{"title":"Инициатор хранится в {variable} только в Camunda 7","detail":"Camunda 8 не записывает, кто запустил экземпляр, в переменную.","action":"Задавайте {variable} как переменную при запуске процесса."},"multi-instance":{"title":"Цикл с несколькими экземплярами по {collection} превращается во входную коллекцию","detail":"Camunda 8 повторяет по входной коллекции, и каждый её элемент попадает в элемент входа.","action":"Делать нечего."},"multi-instance-cardinality":{"title":"Счётчик цикла {cardinality} превращается в коллекцию чисел","detail":"В Camunda 8 нет счётчика цикла: он повторяет по коллекции. Конвертер повторяет по числам от 1 до {cardinality}.","action":"Проверьте, что цикл выполняется столько же раз, сколько раньше."},"multi-instance-missing":{"title":"У цикла с несколькими экземплярами нет ни коллекции, ни счётчика","detail":"Camunda 8 нужна входная коллекция, по которой идёт цикл.","action":"Задайте циклу входную коллекцию."},"call-activity":{"title":"Вызов {process} переносится","detail":"Camunda 8 вызывает процесс по его идентификатору; передаваемые туда и обратно переменные становятся сопоставлениями.","action":"Делать нечего."},"call-activity-business-key":{"title":"Business key передаётся в {process}","detail":"В Camunda 8 нет business key.","action":"Передавайте значение как переменную и сопоставляйте по нему сообщения."},"call-activity-local":{"title":"В {process} передавались только локальные переменные или только они возвращались","detail":"Camunda 8 передаёт переменные, перечисленные в её сопоставлениях; режима только локальных переменных у неё нет.","action":"Проверьте, что сопоставления передают ровно то, что нужно вызываемому процессу."},"call-activity-mapping-class":{"title":"Переменные для {process} сопоставляются кодом Java","detail":"Camunda 8 сопоставляет переменные только через FEEL.","action":"Запишите сопоставление как входные и выходные сопоставления FEEL."},"binding-version":{"title":"{what} привязано к версии {version}","detail":"Camunda 8 привязывает по latest, по развёртыванию или по тегу версии, а не по номеру версии.","action":"Привяжите по развёртыванию или задайте приёмнику тег версии и привяжите по нему."},"binding-dropped":{"title":"Привязка {binding} у {target} теряется","detail":"Версия Camunda 8, для которой выполняется эта конвертация, всегда берёт последнюю версию.","action":"Конвертируйте для 8.6 или новее, чтобы сохранить привязку."},"tenant":{"title":"Арендатор {tenant} задан в диаграмме","detail":"Camunda 8 определяет арендатора по развёртыванию, а не по диаграмме.","action":"Разверните диаграмму в арендатора."},"cmmn":{"title":"Вызывается кейс {case}","detail":"В Camunda 8 нет CMMN.","action":"Смоделируйте кейс как процесс, подпроцесс по требованию или набор задач пользователя."},"decision":{"title":"Вызывается решение {decision}, его результат попадает в {result}","detail":"Camunda 8 вычисляет решение в движке и хранит весь результат в одной переменной.","action":"Делать нечего."},"decision-result":{"title":"Результат решения был сопоставлен как {mapping}","detail":"Camunda 8 хранит результат так, как его отдаёт решение: одно значение на один выход одного правила, контекст для нескольких выходов, список для нескольких правил. Сопоставление Camunda 7 {mapping} может иметь другую форму.","action":"Проверьте, что читающий {result} ждёт форму Camunda 8."},"decision-result-variable":{"title":"Результат решения попадает в {result}","detail":"Camunda 8 нужна переменная результата, а у задачи Camunda 7 её не было.","action":"Переименуйте {result}, если результат должен читать кто-то ещё."},"message-catch":{"title":"Сообщению {message} нужен ключ сопоставления","detail":"Camunda 8 сопоставляет сообщение с ожидающим экземпляром по ключу, который экземпляр вычисляет из своих переменных. Camunda 7 сопоставляла через API, по business key или по переменным.","action":"Добавьте к сообщению ключ сопоставления: выражение FEEL над переменной, известной и отправителю, например =orderId."},"message-name-expression":{"title":"Имя сообщения {name} превращается в {feel}","detail":"Имена сообщений в Camunda 8 могут быть выражениями FEEL.","action":"Делать нечего."},"message-throw":{"title":"Сообщение отправляет {implementation}, который превращается в тип задания {jobType}","detail":"Camunda 8 отправляет сообщение из события отправки через воркер, как задача отправки.","action":"Напишите воркер для {jobType}, который публикует сообщение."},"message-throw-empty":{"title":"У события отправки сообщения нет реализации","detail":"Camunda 8 нужен тип задания у события отправки сообщения; сообщение отправляет воркер.","action":"Задайте событию тип задания и напишите воркер, который публикует сообщение."},"signal-variables":{"title":"Переменные, передаваемые с сигналом {signal}","detail":"Camunda 8 рассылает сигнал с переменными, которые дают его сопоставления входов.","action":"Проверьте, что сигнал несёт переменные, которые читают его ловушки."},"timer":{"title":"Таймер {timer} переносится","detail":"Camunda 8 читает те же даты, длительности и циклы ISO 8601.","action":"Делать нечего."},"timer-cron":{"title":"Цикл таймера {cycle} является cron-выражением","detail":"Camunda 8 читает cron-выражения в формате Spring; Camunda 7 читала их в формате Quartz, который допускает поля, которых нет в Spring.","action":"Проверьте, что cron-выражение корректно для Spring."},"error-code-variable":{"title":"Пойманный код ошибки попадает в {variable} через сопоставление выходов","detail":"Camunda 8 отдаёт пойманную ошибку в сопоставления выходов как errorCode и errorMessage.","action":"Делать нечего."},"error-message":{"title":"Сообщение об ошибке {message} теряется","detail":"В Camunda 8 сообщение об ошибке даёт воркер, который её выбрасывает.","action":"Задавайте сообщение в воркере, когда он выбрасывает ошибку."},"external-error":{"title":"Внешняя задача решает об ошибках выражением {expression}","detail":"В Camunda 8 у задачи нет определений событий ошибки; ошибку выбрасывает сам воркер.","action":"Выбрасывайте ошибку BPMN из воркера, когда условие выполнено."},"escalation-code-variable":{"title":"Код эскалации хранился в {variable}","detail":"Camunda 8 не хранит пойманный код эскалации в переменной.","action":"Передавайте значение как переменную при выбросе эскалации."},"unsupported-element":{"title":"Camunda 8 не может выполнить {what}","detail":"{reason}","action":"{action}"},"element-since":{"title":"{what} требует Camunda {version} или новее","detail":"Версия Camunda 8, для которой выполняется эта конвертация, {target}, не может его выполнить.","action":"Конвертируйте для Camunda {version} или новее либо смоделируйте заново."},"conditional-event":{"title":"Условное событие ждёт {variables}","detail":"Camunda 8 вычисляет условие, когда меняются названные в нём переменные, как Camunda 7 делала при заданном variableName.","action":"Проверьте, что условие срабатывает от ожидаемых переменных."},"properties":{"title":"Свойства расширения переносятся","detail":"Camunda 8 хранит их как свойства zeebe, которые инструменты читают так же.","action":"Делать нечего."},"version-tag":{"title":"Тег версии {tag} переносится","detail":"Camunda 8 хранит теги версий с 8.6.","action":"Делать нечего.","dropped":{"title":"Тег версии {tag} теряется","detail":"Camunda 8 хранит теги версий с 8.6."}},"history-time-to-live":{"title":"Время жизни истории {ttl} теряется","detail":"Camunda 8 хранит историю во вторичном хранилище, которое чистят настройки хранения кластера, а не диаграммы.","action":"Задайте хранение в конфигурации кластера, если это было важно."},"starter-groups":{"title":"Кто может запустить процесс ({groups}), теряется","detail":"Camunda 8 определяет, кто может запустить процесс, через права, а не по диаграмме.","action":"Выдайте право на запуск группам {groups} в идентификации Camunda 8."},"startable-in-tasklist":{"title":"Возможность запускать процесс из Tasklist теряется","detail":"Tasklist в Camunda 8 предлагает каждый процесс, который пользователь может запустить.","action":"Делать нечего."},"template":{"title":"Шаблон элемента {template} является шаблоном Camunda 7","detail":"Шаблон больше не применяется; конвертированные свойства остаются.","action":"Примените версию шаблона для Camunda 8, если она есть."},"unknown-attribute":{"title":"Настройка Camunda 7 {attribute} остаётся как есть","detail":"Penstock не знает, что с ней делать в Camunda 8, поэтому она остаётся в диаграмме, а Camunda 8 её игнорирует.","action":"Проверьте, зависело ли от неё что-нибудь, и удалите её."},"dmn-version":{"title":"Решения записаны в DMN {version}","detail":"Camunda 8 читает DMN 1.3. Penstock и редактор DMN переводят более старый файл в 1.3.","action":"Откройте файл в редакторе DMN, сохраните и только потом конвертируйте.","converted":{"detail":"Camunda 8 читает DMN 1.3, поэтому файл записывается как DMN 1.3.","action":"Делать нечего."}},"dmn-expression-language":{"title":"{what} записан на {language}","detail":"Camunda 8 вычисляет DMN только на FEEL.","action":"Запишите его на FEEL."},"dmn-juel":{"title":"{what} превращается в выражение FEEL {feel}","detail":"Camunda 8 вычисляет DMN только на FEEL.","action":"Делать нечего."},"dmn-input-variable":{"title":"Вход {input} называет своё значение {variable}","detail":"В Camunda 8 значение входа в правиле обозначается как ?, а не по имени.","action":"Замените {variable} на ? в правилах этого входа, а затем удалите имя."},"dmn-history-time-to-live":{"title":"Время жизни истории решения {decision} теряется","detail":"Camunda 8 хранит историю во вторичном хранилище, которое чистят настройки хранения кластера.","action":"Делать нечего."},"dmn-carries-over":{"title":"Решения переносятся","detail":"Camunda 8 вычисляет DMN 1.3 на FEEL, и эти решения не используют ничего другого.","action":"Делать нечего."},"form-platform":{"title":"Форма переносится","detail":"У Camunda Forms на обеих сторонах один формат; меняется только названная в нём платформа.","action":"Делать нечего."},"platform":{"title":"В диаграмме платформой названа Camunda {target}","detail":"Camunda Modeler и Penstock читают платформу из файла.","action":"Делать нечего."},"data-migration":{"title":"Работающие экземпляры и история остаются на Camunda 7","detail":"Конвертация диаграммы не переносит её экземпляры. Экземпляры могут завершиться на Camunda 7 или быть перенесены через Data Migrator от Camunda, которому нужны прежние идентификаторы элементов; конвертер их сохраняет.","action":"Решите, опустошать ли Camunda 7 или запускать Data Migrator."}},"dmn":{"savedAsNotice":"{name} — это файл DMN {from}. Он конвертирован в DMN 1.3 и будет сохранён как DMN 1.3, когда вы его измените."},"form":{"keptOut":"{name} у {id}","lostType":"тип {type} у {id}"},"tally":{"toDo":{"one":"{count} сделать","other":"{count} сделать","few":"{count} сделать","many":"{count} сделать"},"toCheck":{"one":"{count} проверить","other":"{count} проверить","few":"{count} проверить","many":"{count} проверить"},"converts":{"one":"{count} конвертировать без изменений","other":"{count} конвертировать без изменений","few":"{count} конвертировать без изменений","many":"{count} конвертировать без изменений"}}},"notifications":{"closeNotification":"Закрыть уведомление"},"platform":{"theConversionPreviewStayedUnanswered":"Предпросмотр конвертации остался без ответа {seconds} секунд, поэтому Penstock перестал спрашивать и ничего не конвертировал.","theConversionPreviewWasGiven":"Предпросмотр конвертации закрылся без ответа пользователя, поэтому Penstock ничего не конвертировал.","theHostConnectionIsClosed":"Соединение с хостом закрыто","theIdeAnswered":"IDE ответила {status}","theRequestWasCancelled":"Запрос отменён"},"problems":{"waiting":"Ожидание диаграммы для проверки.","tally":{"one":"{count} проблема","few":"{count} проблемы","many":"{count} проблем","other":"{count} проблемы"}},"project":{"chooseCamunda7Camunda8":"Выберите Camunda 7, Camunda 8, Operaton или CIB seven как движок в penstock.yaml, чтобы выполнить развёртывание","filesReplaced":{"one":"{count} файл заменён.","other":"{count} файла заменено.","few":"{count} файла заменено.","many":"{count} файлов заменено."},"isBesideTheDelegateMove":"{fileName} лежит рядом с делегатом; перенесите в него то, что делает {value}.","isNotACamunda7":"{name} не является файлом Camunda 7: конвертировать нечего.","noJobWorkerWasFound":"Воркер заданий для {asked} не найден.","notRunTheEngineWas":"Не выполнено: движок не подтверждён для тестов","nothingWasWritten":"Ничего не записано: {failure}","penstockWillDeployATest":"Penstock развернёт тестовую сборку на {url}, запустит экземпляры и ответит на задания, которые они имитируют. ","runScenariosOnThisEngine":"Запустить сценарии на этом движке?","startFromAnExample":"Начать с примера","templateUpdated":"Шаблон элемента для {value} обновлён из {where} в {path}.","templateWritten":"Шаблон элемента для {value} записан из {where} в {path}.","theBuildAndItsInstances":"Сборка и её экземпляры удаляются после каждого запуска. Пометьте профиль deployment.forTests: true, чтобы больше не спрашивать.","theElementTemplateForAlready":"Шаблон элемента для {value} уже описывает, что делает {where}.","theElementTemplateIsNot":"Шаблон элемента {id} больше нет в этом проекте.","theExampleIsInIts":"Пример {example} находится в {root}. Его README.md рассказывает, как его запустить.","theExampleWasNotWritten":"Пример не записан: {failure}","theJobWorkerWasNot":"Воркер заданий не записан: {failure}","theMigrationReportIsIn":"Отчёт о миграции находится в .penstock/migration: report.md и report.html, чтобы передать его дальше.","theWorkerSkeletonWasNot":"Заготовка воркера не записана: {failure}","thereIsNothingToMigrate":"Мигрировать нечего: не найдено ни диаграммы, ни решения, ни формы Camunda 7.","thingsStayOpen":{"one":"{count} объект остаётся открытым и отмечен на своём элементе; файл Camunda 7 не меняется.","other":"{count} объекта остаются открытыми, каждый отмечен на своём элементе; файл Camunda 7 не меняется.","few":"{count} объекта остаются открытыми, каждый отмечен на своём элементе; файл Camunda 7 не меняется.","many":"{count} объектов остаются открытыми, каждый отмечен на своём элементе; файл Camunda 7 не меняется."},"wasConvertedForCamundaInto":"{name} конвертирован для Camunda {target} в {folder}.","wasWrittenForInMove":"{fileName} записан для {name} в {inside}. Перенесите в него то, что он должен делать.","writeTheOrderExampleInto":"Записать пример заказа {example} в {root}? Он добавит процесс, решение, форму, воркеры, тест-кейсы и README и никогда не перезапишет файл.","couldNotBeRead":"Не удалось прочитать {name}: {reason}","notADiagramDecisionOrForm":"это не диаграмма, решение или форма","alreadyThere":{"one":"{files} уже есть; выберите, заменить ли его, или другую папку","other":"{files} уже есть; выберите, заменить ли их, или другую папку","few":"{files} уже есть; выберите, заменить ли их, или другую папку","many":"{files} уже есть; выберите, заменить ли их, или другую папку"},"theCursorIn":"курсор в {file}","theJobType":"тип задания {value}","engine":{"CAMUNDA_8":"Современная облачная платформа автоматизации процессов","OPERATON":"Платформа автоматизации BPMN, развиваемая сообществом","CIB_SEVEN":"Форк Camunda 7 от сообщества","CAMUNDA_7":"Проверенная платформа автоматизации рабочих процессов и решений","CLASSIC_BPMN":"Стандартное моделирование BPMN 2.0 без расширений конкретного движка"},"scriptType":{"noScriptTypeSelected":"Тип скрипта не выбран","groovyScriptingLanguage":"Скриптовый язык Groovy","javaScriptScriptingLanguage":"Скриптовый язык JavaScript","Groovy":"Groovy","JavaScript":"JavaScript"},"noScriptType":"<пусто>"},"properties":{"calledElement":"Вызываемый элемент","dataObject":"Объект данных","editInNewTab":"Редактировать в новой вкладке","exampleOutputWritten":"Пример выхода записан","idOfTheProcessTo":"Идентификатор вызываемого процесса","isACollection":"Это коллекция","leaveEmptyForTheEngine":"Оставьте пустым, чтобы взять значение движка по умолчанию","loopCondition":"Условие цикла","loopMaximum":"Максимум итераций","loopMaximumWholeNumber":"Максимум итераций должен быть целым числом","testBefore":"Проверка до","tryOnInstance":"Попробовать на экземпляре","writeExampleOutput":"Записать пример выхода","writeThisAsTheExample":"Записать это как пример выхода там, где его читает Camunda Modeler","readingWhatReachesThisStep":"Чтение того, что попадает в этот шаг","nothingReachesThisStep":"До этого шага ничего не доходит, поэтому записывать пример выхода не из чего.","anyValue":"любое","pickAnInstanceToRunThis":"Выберите экземпляр на вкладке «Мониторинг», чтобы выполнить это на его переменных.","projectVariable":"Используется в проекте","sevenCannotEvaluate":"Camunda 7 не умеет вычислять выражения. Нужна Camunda 8.9 или новее.","showScriptTab":"Показать вкладку","scriptInTab":"Этот скрипт открыт во вкладке"},"runs":{"adHocRun":"Разовый запуск {time}","addAScenarioWithChosen":"Добавить сценарий с выбранными входами","addScenario":"Добавить сценарий","addTheVariablesTheScenario":"Добавьте переменные, с которых начинается сценарий.","addWhichAGatewayCondition":"Добавить переменную {name}, которую читает условие шлюза","backTo":"Назад к {value}","buyOrSignIn":"Купить или войти","changed":"Изменён","checkAtTheEnd":"Проверка в конце","choice":{"job":{"ask":"Спросить меня","complete":"Завершить","error":"Выбросить ошибку","fail":"Сначала ошибка, потом завершить","real":"Настоящий воркер"},"timer":{"fire":"Сработать сейчас","real":"Дождаться"}},"chooseAProcess":"Выберите процесс","chooseTheValuesThatTake":"Выберите значения, которые ведут нужным путём. Шлюзы читают {names}.","conditionOf":"Условие {name}","create":"Создать","createScenarios":"Создать сценарии","createThisScenario":"Создать этот сценарий","decisionRule":"Правило решения","enterANameForThe":"Введите имя сценария","enterTheErrorCodeShould":"Введите код ошибки, который должен выбрасывать {name}","enterTheKeyOrId":"Введите ключ или идентификатор экземпляра процесса","errorCode":"Код ошибки","fillTheForm":"Заполнить форму","answerTimer":"Ответить на таймер","mockWorker":"Моделировать воркер","fireTimer":"Сработать таймер","advanceTimeBy":"Продвинуть время на","timerFired":"Таймер настроен на срабатывание","timerDurationProblem":"Укажите время как длительность ISO 8601, например PT2H или P1D","removeTimerAnswer":"Не срабатывать","workerOutcome":"Результат","completeJob":"Завершить задачу","throwBpmnError":"Выбросить ошибку BPMN","failJob":"Завершить ошибкой","workerVariables":"Переменные (JSON)","errorMessage":"Сообщение об ошибке","saveMock":"Сохранить мок","removeMock":"Удалить мок","invalidJson":"Переменные следует задавать объектом JSON, например {\\"amount\\": 150}","generate":"Сгенерировать","in":"Вход","include":"Включить {name}","kind":{"call":"Вызов","decision":"Решение","delegate":"Делегат","end":"Конец","error":"Ошибка","eventGateway":"Ожидание","gateway":"Шлюз","join":"Объединение","message":"Сообщение","parallel":"Разделение","signal":"Сигнал","start":"Начало","subprocess":"Подпроцесс","task":"Задача","timer":"Таймер","user":"Задача пользователя","worker":"Воркер"},"leaveItEmptyToName":"Оставьте пустым, чтобы назвать сценарий по его пути.","mocked":"Имитирован","name":"Имя","nameOfTheScenario":"Имя сценария","nextStep":"Следующий шаг","noDecisionTableWithId":"В этом проекте нет таблицы решений с идентификатором {id}","noFormWithTheId":"В этом проекте нет формы с идентификатором {id}","noScenarioFile":"Нет файла сценария","noScenariosAdded":"Сценарии не добавлены.","notTakenByThisScenario":"Этот сценарий не проходит","openRun":"Открыть запуск","out":"Выход","penstockCannotCheckThisExpression":"Здесь Penstock не может проверить это выражение","penstockFailed":"Ошибка Penstock: {message}","previousStep":"Предыдущий шаг","process":"Процесс","processInstance":"Экземпляр процесса","removeVariable":"Убрать {name}","resizeTheRunsPanel":"Изменить размер панели запусков","reviewScenarios":"Проверить сценарии","run":"Запустить","runOutput":"Результат запуска","runWithInput":"Запустить с данными","runningNeedsAnEngineSet":"Для запуска нужен движок. Настройте действующий профиль развёртывания.","saveAsScenario":"Сохранить как сценарий","scenariosIn":"Сценарии в {file}","scenariosNeedAnEngine":"Сценариям нужен движок.","scenariosRunACamunda7":"Сценарии выполняют процесс Camunda 7 или Camunda 8 на движке и проходят по каждому шагу. У этой диаграммы не задан движок.","scenariosToCreate":"Сценарии для создания","source":{"decision":"из вычисления решения","diff":"изменилось между двумя чтениями; движок не говорит, какой шаг это записал","history":"из истории движка","mock":"отправлено или получено имитатором"},"startVariables":"Начальные переменные","startsAt":"Начинается с","state":{"completed":"завершён","active":"ожидает","failed":"упал","terminated":"завершён досрочно"},"step":"Шаг","stepBadge":"Шаг {number}: {name}","steps":"Шаги","theDiagramHasNoExecutable":"На диаграмме нет процесса, который можно запустить","theKeyOfACamunda":"Ключ экземпляра Camunda 8 или идентификатор экземпляра Camunda 7. Читает экземпляр у движка действующего профиля и показывает его путь и шаги. На движке ничего не меняется.","thePlainStartEvent":"Простое стартовое событие","theRunDiffersFrom":{"one":"Запуск отличается от {against} в 1 месте.","other":"Запуск отличается от {against} в {count} местах.","few":"Запуск отличается от {against} в {count} местах.","many":"Запуск отличается от {against} в {count} местах."},"theRunMatches":"Запуск совпадает с {against}.","theRunWaits":"Запуск ожидает","theScenarioAnsweredThisStep":"Сценарий ответил на этом шаге; настоящий код не выполнялся","theScenarioAsItIs":"Сценарий в том виде, как он записан","theScenarioStartsTheProcess":"Сценарий запускает процесс с теми же переменными, отвечает на шаги так же, как вы, и проверяет путь, который прошёл запуск.","theScenarioStartsTheProcessInto":"Сценарий запускает процесс с теми же переменными, отвечает на шаги так же, как вы, и проверяет путь, который прошёл запуск. Он попадёт в {file}.","theStartVariablesShouldBe":"Начальные переменные должны быть объектом JSON, например {\\"amount\\": 150}","theVariable":"переменная","theVariablesSendsShouldBe":"Переменные, которые отправляет {name}, должны быть объектом JSON","theWayThisScenarioTakes":"Путь, который проходит этот сценарий","theseValuesTake":"Эти значения ведут так: {scenario}","timesToFail":"Сколько раз ошибка","toFillIn":"Заполнить","unableToSaveTheScenario":"Не удалось сохранить сценарий","unableToWrite":"Не удалось записать {name}: {error}","theScenarioFile":"файла сценариев","unreadable":"Сейчас диаграмму нельзя прочитать, поэтому её сценарии нельзя спланировать.","userTasksAndMessagesAsk":"Задачи пользователя и сообщения спрашивают вас, когда запуск до них доходит. Имитированный шаг помечен как «Имитирован»: там не выполнялся настоящий код.","valueOf":"Значение {name}","variableName":"Имя переменной","variablesAreAJsonObject":"Переменные — это объект JSON, например {\\"approved\\": true}","variablesSends":"Переменные, которые отправляет {name}","view":"Вид","whatDoes":"Что делает {name}","withErrorCode":"с кодом ошибки","writeThisScenarioToThe":"Записать этот сценарий в файл при нажатии «Создать сценарии»","conditionsOnTheWayOut":"Условия на выходе","goToTheWorker":"Перейти к воркеру","showTheDecisionRule":"Показать правило решения","openTheDecision":"Открыть решение","goToTheForm":"Перейти к форме","received":"Получено","variablesToSend":"Переменные для отправки","correlate":"Сопоставить","throwError":"Выбросить ошибку","stop":"Остановить","runAll":"Запустить все","close":"Закрыть","log":"Журнал","penstockOnlyCamundaProcessTestWould":"Только Penstock: Camunda Process Test выполнил бы это иначе","alreadyInTheFileKeptAs":"Уже есть в файле: оставлено как есть","added":"Добавлено","text":"Текст","saveChanges":"Сохранить изменения","generateThemFromTheDiagram":"Сгенерировать их по диаграмме","openScenario":"Открыть сценарий","scenarios":"Сценарии","addAValue":"Добавить значение","saveAsScenarioMore":"Сохранить как сценарий…","theJob":"задание {job}","theUserTask":"задача пользователя","theMessage":"сообщение {message}","theSignal":"сигнал {signal}","waitingAtFor":"Ожидание в {where}: {what}","aScenarioIsOpen":"В боковой панели открыт сценарий","noConditionAlwaysTaken":"без условия: эта ветвь всегда берётся, когда до неё доходят","chooseVariablesSoThat":"выберите переменные так, чтобы {text}","trueOrFalseForTheValues":"{result} для значений этого сценария{used}","true":"истинно","false":"ложно","shouldFailAWholeNumberOfTimes":"{name} должен падать целое число раз, хотя бы один","toCreate":"создать {ticked} из {items}","cannotBePlanned":{"one":", {count} нельзя спланировать","other":", {count} нельзя спланировать","few":", {count} нельзя спланировать","many":", {count} нельзя спланировать"},"moreWaysThanShown":{"one":"Через этот процесс ведёт больше {count} путей: перечисленные ниже сценарии вместе достигают каждого потока.","other":"Через этот процесс ведёт больше {count} путей: перечисленные ниже сценарии вместе достигают каждого потока.","few":"Через этот процесс ведёт больше {count} путей: перечисленные ниже сценарии вместе достигают каждого потока.","many":"Через этот процесс ведёт больше {count} путей: перечисленные ниже сценарии вместе достигают каждого потока."},"scenariosAdded":{"one":"{count} сценарий добавлен","other":"{count} сценария добавлено","few":"{count} сценария добавлено","many":"{count} сценариев добавлено"},"toFillInCount":{"one":"нужно заполнить: {count}","other":"нужно заполнить: {count}","few":"нужно заполнить: {count}","many":"нужно заполнить: {count}"},"alreadyThereAndKept":{"one":"уже есть и оставлено без изменений: {count}","other":"уже есть и оставлено без изменений: {count}","few":"уже есть и оставлено без изменений: {count}","many":"уже есть и оставлено без изменений: {count}"},"leftAsItIs":"{file}: файл оставлен как есть: {problems}","scenariosSaved":{"one":"{count} сценарий сохранён","other":"{count} сценария сохранено","few":"{count} сценария сохранено","many":"{count} сценариев сохранено"},"nameTaken":"У {name} уже есть сценарий с именем «{scenario}»: выберите другое имя","errorNeedsItsCode":"Ошибке BPMN нужен её код","complete":"Завершить","broadcast":"Разослать","runWithInputMore":"Запустить с данными…","openRunMore":"Открыть запуск…","runAllIsOff":"«Запустить все» выключено: {reason}","noEngineToRunOn":"движка для запуска нет","noScenariosToRunYet":"Запускать пока нечего: сценариев нет. Создайте их на вкладке «Сценарии» боковой панели.","theTraceIsKeptIn":"Трассировка хранится в {path}","openARunMore":"Открыть запуск…","theFile":"файл","notOnThisScenariosPath":"Этого элемента нет на пути этого сценария.","planningTheScenarios":"Планируем сценарии…","noWayThroughAProcess":"Ни один запускаемый процесс здесь не имеет пути, который начинается в простом стартовом событии.","hideTheConditions":"Скрыть условия","fixTheConditions":"Путь не тот? Исправьте условия","readOnlyEditingIsPro":"Только для чтения: правка сценария входит в Penstock Pro.","aChangeIsMadeInThe":"Изменение вносится на диаграмме, его можно отменить там же, и все сценарии планируются заново.","defaultFlowNoCondition":"поток по умолчанию, без условия","decisionTableNotInProject":"Таблицы решений {id} нет в этом проекте, поэтому её правила показать нельзя.","formNotInProject":"Форма {id} отсутствует в этом проекте, поэтому её поля не могут быть показаны.","openTheDecisionIn":"Открыть решение в {file}","itsFile":"его файл","problemCount":{"one":"1 проблема","other":"{count} проблемы","few":"{count} проблемы","many":"{count} проблем"},"startedByAnEvent":" (запускается событием)","notice":{"added":{"one":"Добавлен {count} сценарий","few":"Добавлено {count} сценария","many":"Добавлено {count} сценариев","other":"Добавлено {count} сценария"},"toFillIn":"Заполнить: {count}","kept":"Уже были и сохранены: {count}","leftAsIs":"{file}: файл оставлен как есть: {problems}","saved":{"one":"Сохранён {count} сценарий","few":"Сохранено {count} сценария","many":"Сохранено {count} сценариев","other":"Сохранено {count} сценария"},"duplicated":"Создана копия {name}","deleted":"Удалён {name}","renamedTo":"Переименован в {name}"},"stateColumn":"Состояние","noScenariosHint":"Сценарий запускает процесс с выбранными входными данными и проверяет пройденный путь.","scenarioActions":"Действия со сценарием","rename":"Переименовать","duplicate":"Дублировать","deleteScenario":"Удалить сценарий","deleteScenarioTitle":"Удалить сценарий {name}?","deleteScenarioText":"{name} будет удалён из {file}. Это нельзя отменить."},"share":{"couldNotShareThisDiagram":"Не удалось поделиться этой диаграммой: {failure}","oneFileThatOpensOffline":"Один файл, который открывается в любом браузере без сети","savedItOpensOfflineIn":"Сохранено: {target}. Файл открывается в любом браузере без сети.","shareAsHtml":"Поделиться как HTML","zoomIn":"Приблизить","zoomOut":"Отдалить","fitToScreen":"По размеру экрана","madeWith":"Сделано в Penstock","elementDocumentation":"Документация элемента","clickAnElement":"Нажмите на элемент, чтобы увидеть его документацию. Колесо мыши масштабирует, перетаскивание перемещает.","noDocumentation":"Документации нет.","couldNotBeDrawn":"Схему не удалось нарисовать, поэтому отправлять нечего."},"shortcuts":{"group":{"Canvas":"Холст","Edit":"Правка","Modeling":"Моделирование","Penstock":"Penstock"},"noMatch":"Ничего не найдено.","noMatchHint":"Очистите поиск, чтобы снова увидеть все сочетания.","row":{"canvas-find":"Найти на диаграмме","canvas-fit":"Вписать диаграмму","canvas-moveSelection":"Переместить выделение","canvas-pan":"Перемещать по холсту","canvas-selectAll":"Выделить все элементы","canvas-zoomIn":"Приблизить","canvas-zoomOut":"Отдалить","edit-copy":"Копировать","edit-cut":"Вырезать","edit-duplicate":"Дублировать","edit-paste":"Вставить","edit-redo":"Повторить","edit-remove":"Удалить выделение","edit-undo":"Отменить","model-connect":"Соединить","model-direct-edit":"Изменить подпись","model-hand":"Инструмент «Рука»","model-lasso":"Выделение лассо","model-replace":"Заменить элемент","model-space-tool":"Инструмент «Пробел»","penstock-palette":"Найти действие"},"search":"Поиск действий и клавиш","title":"Сочетания клавиш"},"sidebar":{"backTo":"Назад к {title}","clickOrPressF2To":"{title} - щёлкните или нажмите F2, чтобы переименовать","collapseTheSidebar":"Свернуть боковую панель","collapsedLabel":"{title}, свёрнуто","openTheSidebar":"Открыть боковую панель","pressF2OrEnterTo":"{title}. {label}: нажмите F2 или Enter, чтобы переименовать","resizeTheSidebar":"Изменить размер боковой панели","sidebar":"Боковая панель","tab":{"code":"Код","comments":"Комментарии","monitor":"Мониторинг","preview":"Предпросмотр","problems":"Проблемы","properties":"Свойства","scenarios":"Сценарии","try":"Попробовать","debug":"Отладка","chat":"Чат"},"findingCount":{"one":"{count} проблема","other":"{count} проблемы","few":"{count} проблемы","many":"{count} проблем"},"moreThan99Findings":{"one":"больше 99 проблем","other":"больше 99 проблем","few":"больше 99 проблем","many":"больше 99 проблем"},"status":{"working":"Агент работает","waiting":"Ждёт вашего ответа"},"moreTabs":"Ещё вкладки"},"startup":{"retryingReloadsTheEditorAnd":"Повторная попытка перезагружает редактор и заново читает проект.","theEditorCouldNotStart":"Редактор не удалось запустить"},"toolbar":{"moreActions":"Другие действия","moreActionsHint":"Другие действия ({shortcut})","moreWaysTo":"Другие способы: {title}"},"nudges":{"price":"{monthly} в месяц или {yearly} в год","trialEnded":{"text":"Пробный период Pro закончился. Penstock Free продолжает работать без ограничения по времени, и ничего не потеряно: ваши диаграммы и файлы не тронуты. Закрыто, пока вы не перейдёте на Pro: {features} и другие инструменты Pro. Pro стоит {price}.","start":"Начать с Pro","later":"Напомнить позже"},"lastDay":{"text":"Последний день пробного периода Pro. Завтра инструменты Pro закроются; ваши диаграммы и всё, что есть во Free, продолжат работать без ограничения по времени. Pro стоит {price}.","start":"Начать с Pro"},"day23":{"text":{"one":"Пробный период Pro закончится через {count} день. После этого Penstock остаётся бесплатным, без ограничения по времени; закрываются только инструменты Pro, например {features}.","few":"Пробный период Pro закончится через {count} дня. После этого Penstock остаётся бесплатным, без ограничения по времени; закрываются только инструменты Pro, например {features}.","many":"Пробный период Pro закончится через {count} дней. После этого Penstock остаётся бесплатным, без ограничения по времени; закрываются только инструменты Pro, например {features}.","other":"Пробный период Pro закончится через {count} дня. После этого Penstock остаётся бесплатным, без ограничения по времени; закрываются только инструменты Pro, например {features}."},"action":"Посмотреть тарифы Pro"},"freeNotice":{"text":"Penstock бесплатен, без ограничения по времени. Редакторы, Check, Deploy, Monitor, обмен и импорт, а также анализ перехода с Camunda 7 на 8 остаются бесплатными, как и визуальное сравнение диаграмм в системе контроля версий. Pro добавляет новые инструменты: {features} и другие инструменты Pro. {trial}","trialRunning":"Идёт ваш {days}-дневный пробный период Pro.","trialEnded":"Пробный период Pro закончился; Free продолжает работать.","action":"Что входит в Pro"}},"tour":{"check":{"body":"Проверка идёт вместе с рисованием. «Проверка» открывает найденное: первые проблемы — в карточке внизу справа, а полный список — на вкладке «Проблемы».","title":"Проверка"},"deploy":{"body":"«Развернуть» отправляет диаграмму вашему движку. {profiles}","title":"Развернуть"},"done":"Готово","label":"Обзор редактора","more":{"body":"Все действия — в меню «Другие», и {shortcut} открывает тот же список. Начните печатать, чтобы найти нужное, а закрепление выводит действие на панель инструментов. Обзор можно показать снова отсюда.","title":"Другие"},"next":"Далее","palette":{"body":"Выберите здесь фигуру и перетащите её на холст или выберите фигуру и используйте панель, которая появится рядом с ней.","title":"Палитра"},"profileChoice":"Стрелка рядом с ним выбирает другой профиль или открывает соединение.","properties":{"body":"Выберите фигуру — здесь откроются её свойства: имя, реализация, входы и выходы. В боковой панели есть ещё семь вкладок, а последняя кнопка на панели инструментов скрывает их все.","title":"Панель свойств"},"singleProfile":"Если у движка ещё нет соединения, она открывает его.","skip":"Пропустить","step":"Шаг {index} из {total}","tool-window":{"body":"Инструментальное окно Penstock находится на боковой полосе IDE. В нём перечислены процессы, воркеры, шаблоны элементов, сообщения, решения и формы всего проекта.","title":"Инструментальное окно"}},"tracePaths":{"closeTrace":"Закрыть трассировку","followMessageFlows":"Следовать по потокам сообщений","tracePaths":"Трассировка путей","tracingBeforeAfter":"Трассировка {label} - {before} до, {after} после"},"transactionBoundaries":{"transactionBoundaryTheEngineCommits":"Граница транзакции: движок фиксирует здесь"},"try":{"aggregated":", {aggregation} из совпадений","aggregation":{"COUNT":"Количество","MAX":"Максимум","MEAN":"Среднее","MEDIAN":"Медиана","MIN":"Минимум","MODE":"Самое частое","SUM":"Сумма"},"policy":{"ANY":"Любое: подходит несколько правил, если они дают одинаковый результат","COLLECT":"Собрать: каждое подходящее правило даёт свой вклад","FIRST":"Первое: побеждает первое подходящее правило","OUTPUT ORDER":"Порядок вывода: все подходящие правила по приоритету вывода","PRIORITY":"Приоритет: побеждает подходящее правило с наивысшим приоритетом вывода","RULE ORDER":"Порядок правил: все подходящие правила в порядке правил","UNIQUE":"Уникальное: подходит ровно одно правило"},"shouldBe":"{name} должно быть {wanted}","aValueOf":"{type}","value":"значение","aNamePenstockCanRead":"имя, которое может прочитать Penstock","penstockCannotEvaluateHere":"{why}; здесь Penstock не может вычислить эту ячейку: {cells}","needsAValueFor":"нужно значение для {names}","tableNeeds":"{table} {skipped}","tableNeedsAValueFor":"{table}: для {names} нужно значение","cannotEvaluateTheseCells":"Здесь Penstock не может вычислить эту ячейку: {cells}","noRuleWasCompared":"{table}: {names}, поэтому ни одно правило не сравнивалось"},"unreadable":{"note":{"decision":"Файл не изменён. Исправьте XML на вкладке «Текст», и решение снова откроется.","diagram":"Файл не изменён. Исправьте XML на вкладке «Текст», и диаграмма снова откроется.","form":"Файл не изменён. Исправьте JSON на вкладке «Текст», и форма снова откроется."},"open":{"decision":"Открыть XML","diagram":"Открыть XML","form":"Открыть файл"},"title":{"decision":"Это решение не удалось открыть","diagram":"Эту диаграмму не удалось открыть","form":"Эту форму не удалось открыть"},"atLine":"{reason} в строке {line}.","reason":{"unclosedTag":"незакрытый тег","closingTagMismatch":"не совпадает закрывающий тег","closeTag":"закрывающий тег","missingStartTag":"нет открывающего тега","missingOpenTag":"нет открывающего тега","unexpectedEndOfFile":"файл неожиданно заканчивается","unclosedCdata":"незакрытая секция CDATA","unclosedComment":"незакрытый комментарий","unclosedQuestion":"незакрытая инструкция обработки","illegalFirstCharNodeName":"недопустимый первый символ в имени узла","illegalValueOfXmlnsXml":"недопустимое значение xmlns:xml","invalidNodeName":"недопустимое имя узла","missingNamespaceOn":"у <{element}> нет пространства имён","unparsableContent":"не удаётся разобрать содержимое <{element}>","notYetDrawn":"элемент {element}, на который ссылается {reference}#{property}, ещё не нарисован","unparsableContentHinted":"не удаётся разобрать содержимое <{element}>; возможно, это некорректный файл диаграммы BPMN 2.0","noDiagramToDisplay":"в файле нет обмена диаграммой, рисовать нечего","empty":"файл пуст"}},"tooltip":{"inputOutputParameters":"Входные и выходные параметры","script":"Скрипт","subprocess":"Подпроцесс","serviceTask":"Сервисная задача","assignment":"Назначение","properties":"Свойства","inTheProject":"В проекте","in":"ВХОД: {number}","out":"ВЫХОД: {number}","inOf":"ВХОД ({number})","outOf":"ВЫХОД ({number})","elements":"Элементы:","id":"ID:","notSet":"<не задано>","implementation":"Реализация","class":"Класс","delegate":"Делегат","assignee":"Исполнитель","groups":"Группы","users":"Пользователи","itemsCount":"[элементов: {number}]"},"dialog":{"exampleHint":"например, {example}"},"toolWindow":{"action":{"buyOrSignIn":"Купить или войти…","checkWorkersOn":"Проверить воркеры в {where}","checkWorkersOnEngines":"Проверить воркеры на движках","convertAll":"Конвертировать все…","convertToCamunda8":"Конвертировать в Camunda 8…","copyId":"Копировать ID","createElementTemplate":"Создать шаблон элемента…","createExample":"Создать пример","createJobWorker":"Создать воркер заданий…","createNodeWorker":"Создать воркер на Node…","createPythonWorker":"Создать воркер на Python…","debugTests":"Отладить тесты","deploy":"Развернуть","findUsages":"Найти использования в коде","goToImplementation":"Перейти к реализации","groupByFiles":"Сгруппировать по файлам","jobWorkerSkeleton":"Заготовка воркера заданий…","migrationReport":"Отчёт о миграции","nodeWorkerSkeleton":"Заготовка воркера на Node…","pythonWorkerSkeleton":"Заготовка воркера на Python…","runAllProcessTests":"Запустить все тесты процессов","runTests":"Запустить тесты","showFolders":"Показать папки"},"codeLinks":{"detail":"что выполняет каждый шаг, его тесты и покрытие: Penstock Pro","tooltip":"Penstock Pro связывает диаграммы с кодом, который их выполняет: воркеры, использования, переменные и коды ошибок по обе стороны, тесты, запускаемые из диаграммы, и покрытие на ней"},"count":{"files":{"one":"{count} файл","other":"{count} файла","few":"{count} файла","many":"{count} файлов"},"tasks":{"one":"{count} задача","other":"{count} задачи","few":"{count} задачи","many":"{count} задач"},"templates":{"one":"{count} шаблон","other":"{count} шаблона","few":"{count} шаблона","many":"{count} шаблонов"},"tests":{"one":"{count} тест","other":"{count} теста","few":"{count} теста","many":"{count} тестов"},"scripts":{"one":"{count} скрипт","other":"{count} скрипта","few":"{count} скрипта","many":"{count} скриптов"}},"debug":{"activeAt":"Активен: {name}","pausedAt":"Приостановлен в {name}"},"detail":{"calledBy":"вызывается из {name}","calls":"вызывает {name}","catches":"ловит","catchesName":"ловит {name}","caught":"поймано {number}","caughtThrown":"поймано {caught} · выброшено {thrown}","checkedAt":"проверено в {where}","converts":"конвертируется","decision":"решение {id}","defaultProfile":"по умолчанию","filesBlocked":"{number} заблокировано","filesNeedingWork":"{number} требует работы","form":"форма {id}","implementation":"реализация","inCode":"{number} в коде","inForce":"действует","instance":"экземпляр {instance}","lastDeploy":"последний: {when}","listener":"слушатель {event}","neverSet":"никогда не задаётся в проекте","neverThrown":"никогда не выбрасывается","noAddress":"нет адреса","noImplementation":"нет реализации","notCaught":"не поймано","notInProject":"нет в проекте","notInThisProject":"нет в этом проекте","nothingHandlesIt":"Ничто в коде этого проекта не обрабатывает это","onWhere":"На {where}, {text}","outOfStep":"{number} не совпадает","percentCovered":"покрыто на {percent}%","readBy":"читается в {number}","reads":"читает","readsInCode":"читается в коде","setAs":"задать как «{name}»?","setBy":"задаётся в {number}","sets":"задаёт","setsInCode":"задаётся в коде","test":"тест","testGroup":"Тесты","theEngine":"движок","thrown":"выброшено {number}","throws":"выбрасывает","throwsName":"выбрасывает {name}","toCheck":"{number} проверить","toCheckOne":"проверить","toDo":"{number} сделать","toDoOne":"сделать"},"examples":{"camunda7Detail":"делегат Java и воркер внешнего задания","camunda7Label":"Процесс заказа Camunda 7","camunda8Detail":"воркер на Spring Boot и воркер на Node","camunda8Label":"Процесс заказа Camunda 8","cibSevenDetail":"делегат Java и воркер внешнего задания, на CIB seven","cibSevenLabel":"Процесс заказа CIB seven","detail":"небольшой запускаемый проект в этой папке","operatonDetail":"делегат Java и воркер внешнего задания, на Operaton","operatonLabel":"Процесс заказа Operaton","flowableLabel":"Процесс заказа на Flowable","flowableDetail":"движок на Spring Boot с Java-делегатом и пользовательской задачей, на Flowable","activitiLabel":"Процесс заказа на Activiti","activitiDetail":"движок на Spring Boot с Java-делегатом и пользовательской задачей, на Activiti"},"kind":{"bean":"бин","javaClass":"класс","jobType":"тип задания","topic":"тема"},"migrationStatus":{"blocked":"заблокировано","converts":"конвертируется","needsWork":"требует работы","ready":"готово"},"section":{"code":"Код","debug":"Отладка","decisions":"Решения","deployment":"Развёртывание","errors":"Ошибки","examples":"Начать с примера","files":"Файлы","forms":"Формы","messages":"Сообщения","migration":"Перейти на Camunda 8","processes":"Процессы","templates":"Шаблоны элементов","tests":"Тесты","variables":"Переменные","workers":"Воркеры","scripts":"Скрипты"},"title":{"implementationsOf":"Реализации {name}","theProcessTests":"тесты процессов"},"tooltip":{"becomes":"Превращается в {what}.","errorNeverThrown":"Её ловит событие ошибки, но никто её не выбрасывает","errorUncaught":"Код выбрасывает её, но ни одно событие ошибки её не ловит","migration":"Что не переносится с Camunda 7 на Camunda {target}, по файлам, и во что превращается код Java","templatesOutOfStep":"Некоторые шаблоны больше не описывают, что делает воркер, из которого они записаны","variableTypo":"Ничто не задаёт «{name}», а задано «{typo}»: опечатка в одном из них?"},"unsupported":{"script":"Скрипты открываются во вкладке IDE. Здесь измените скрипт на панели свойств элемента."},"script":{"missing":"Этого скрипта больше нет в диаграмме."}},"scenarios":{"aGateway":"шлюз","addedScenario":"Добавленный сценарий","barText":{"stepOf":"Шаг {at} из {total}","steps":"Шагов: {count}"},"cannotFollow":"Penstock не может пройти по процессу «{process}»: у него нет стартового события, с которого начать.","checksUnreachedElements":"Этот сценарий проверяет элементы, которых не достигает ни один путь по текущей диаграмме.","chooseAProcess":"На этой диаграмме несколько запускаемых процессов ({processes}): выберите один.","coverage":{"capped":"На диаграмме больше путей, чем помещается в {cap} сценариев: вместе эти сценарии достигают каждого потока и каждого конца.","doesNotFollow":"Penstock не следует за шагами внутри «{name}»: {why}","endEvents":"{unreached} из {total} событий завершения","flows":"{unreached} из {total} потоков","noScenarioReaches":"Ни один сценарий не достигает {parts} (пунктиром на диаграмме)"},"difference":{"againstSteps":"шаги плана","againstStepsAndVariables":"шаги плана и переменные, проверяемые в его конце","branch":"ожидалось {expected}, пошло {took}","notSet":"не задано","plannedButNotRun":"запланировано, но не выполнилось","ranButNotPlanned":"выполнилось, но сценарий этого не планировал","value":"{name}: ожидалось {expected}, получено {got}"},"dmn":{"cannotReadInput":"Penstock не может прочитать вход {inputs}","chooseVariablesFor":"выберите переменные для {names}","hitPolicy":{"outputOrder":"Порядок вывода","priority":"Приоритет"},"hitPolicyAny":"Политика попаданий «Любое», но правила {rules} подходят с разными результатами","hitPolicyNeedsValues":"Политике попаданий {policy} нужны выходные значения, чтобы упорядочить","hitPolicyUnique":"Политика попаданий «Уникальное», но подходят и правило {first}, и правило {last}: движок выбрасывает ошибку","inputFits":"{input} {value} подходит {cell}","noRuleMatches":"ни одно правило не подходит под эти значения","raisesAnError":"движок выбрасывает ошибку, поэтому ничего не возвращает","returnsOutputs":"возвращает {outputs}","ruleMatches":"Правило {rule} подходит","rulesMatch":"Правила {rules} подходят","tableBecause":"{table}: {because}","textAsNumber":"{name} это текст {value}, а правила сравнивают его как число","unnamedInput":"вход {number}","unnamedOutput":"выход {number}","why":"{which}; {returns}","whyWithReasons":"{which}: {reasons}; {returns}"},"doesNotReachAnEnd":"С этими значениями процесс не доходит до конца.","duplicateDecision":"Решение «{id}» есть в {used} и {other}: Penstock использует {used}","event":{"message":"{name} (сообщение {message})","signal":"{name} (сигнал {signal})","timer":"{name} (таймер {timer})"},"gatewayHint":{"cannotCheck":"Здесь Penstock не может проверить {text}","chooseVariables":"выберите переменные так, чтобы {text}","default":"по умолчанию: берётся, когда ни одно другое условие не истинно","isFalse":"{text} ложно{used}","isTrue":"{text} истинно{used}","noCondition":"не имеет условия, поэтому берётся всегда","undecided":"{text} не удаётся определить: {notes}; Camunda 8 может остановиться здесь с инцидентом"},"gatewayNeedsCondition":"В Camunda 8 каждому потоку из исключающего шлюза нужно условие, кроме потока по умолчанию. Задайте ему условие или сначала сделайте его потоком по умолчанию на панели свойств.","issue":{"doesNotFollowInside":"Penstock не следует за шагами внутри {label}: {why}","nothingCompletesTheStep":"В сценарии нет указания, которое завершит этот шаг","nothingMakesTheEventHappen":"В сценарии нет указания, которое вызовет это событие","overlap":"Истинны и {first}, и {last}{values}: движок берёт первое в файле, {taken}, {never}","stuckAtGateway":"Ни одно условие не истинно и нет умолчания: движок выбрасывает здесь инцидент","timerNeverFires":"Сценарий не позволяет этому таймеру сработать","valuesDoNotTake":"{hints}: эти значения не ведут по {names}","valuesTakeMore":"{hints}: эти значения ведут также по {names}"},"listSeparator":{"many":" или ","two":" или "},"namesNoProcess":"Этот сценарий не называет процесс, а на диаграмме несколько запускаемых процессов ({processes}).","needsAnEngine":"Для запуска сценариев нужен движок. Настройте действующий профиль развёртывания с адресом, как для развёртывания, и укажите локальный движок или движок с пометкой deployment.forTests: true.","noConditionAtGateway":"В {where} ни одно условие не истинно и нет потока по умолчанию: движок выбрасывает там инцидент.","noExecutableProcess":"На этой диаграмме нет запускаемого процесса.","notFollowed":{"adhoc":"подпроцесс по требованию выполняет свои шаги в любом порядке","callActivity":"задача вызова выполняет другой процесс"},"note":{"noOrder":"Penstock не сравнивает значения {kind} через < или >","noTextOrder":"Penstock не сравнивает текст через < или >","notBoolean":"{name} — это {value}, а не true или false","otherKind":"{name} — это {value}, а не {other}"},"processNotExecutable":"Этот сценарий запускает процесс «{process}», который не запускается на этой диаграмме.","processNotInDiagram":"Этот сценарий запускает процесс «{process}», которого нет на этой диаграмме.","quoted":"«{name}»","slot":{"carriesNothing":"Не несёт переменных.","completesWithNothing":"Завершается без переменных. Добавьте те, которые отправила бы форма.","expectedAtTheEnd":"Переменные, которые должны быть заданы в конце","itReturns":"Возвращает","messageCarries":"Сообщение несёт","noVariablesAdd":"Переменных нет. Добавьте те, которые нужны шлюзам ниже.","nothingChecked":"Переменные нигде не проверяются. Добавьте те, которые важны.","returnsNothingAdd":"Ничего не возвращает. Добавьте переменные, которые он должен задать.","signalCarries":"Сигнал несёт","startVariables":"Начальные переменные","theyCompleteWith":"Их завершают","workerReturns":"Воркер возвращает"},"step":{"callsTheProcess":"Выполняет процесс {process} (сценарий проверяет этот шаг, а не то, что внутри)","code":"код","comesFirst":"; в этом сценарии {target} идёт первым","correlationKey":" (ключ сопоставления {key})","evaluatesTheDecision":"Вычисляет решение {decision}","failsWithError":"завершается с ошибкой {code}","gatewaySendsOn":"Шлюз отправляет процесс дальше","labelCatchesIt":", и {label} ловит её","labelSendsOn":"{label} отправляет процесс дальше","messageArrives":"Приходит сообщение «{message}»{key}","messageCaught":"Сообщение «{message}» приходит, пока задача ждёт, и {label} ловит его{key}","neverTakenMany":"поэтому {names} никогда не берутся","neverTakenOne":"поэтому {name} никогда не берётся","noBranch":"без ветви","noConditionNoDefault":"Ни одно условие не истинно и нет потока по умолчанию","passesThrough":"Проходит через {label}","personCompletes":"Человек завершает {label}{with}","processEndsAt":"Процесс заканчивается в {label}","repeatsPerItem":" (здесь один раз; повторяется для каждого элемента)","returns":"возвращает {values}","returnsNothing":"ничего не возвращает","runs":"Выполняет {label}","runsAndCompletes":"{label} выполняет {which} и завершается","runsStepsFollow":"Выполняет {label}: его шаги идут{repeats}","signalIsBroadcast":"Сигнал «{signal}» рассылается{caught}","splitsInto":"Делится на {number} ветвей, которые идут параллельно","startsWithVariables":"Начинается в {label} с этими переменными","startsWithoutVariables":"Начинается в {label} без переменных","subProcessEndsAt":"Подпроцесс заканчивается в {label}","subProcessStartsAt":"Подпроцесс начинается в {label}","takesBecause":"Берёт {names}: {because}","takesButValues":"В этом сценарии берёт {names}, но эти значения вели бы по {other}","taskFailsWithError":"Задача завершается с ошибкой {code}, и {label} ловит её","timerFires":"{label} срабатывает{when} — сценарий позволяет ему сработать сразу","waitsForBranches":"Ждёт {number} входящих ветвей и идёт дальше","waitsForFirst":"Ждёт, что придёт первым: {targets}","with":" с {values}","workerOf":"Воркер у {label} ({kind} {type}) {what}"},"takesAnotherWay":"Значения в этом сценарии ведут по процессу иначе, чем элементы, которые он проверяет.","targetNeedsSignIn":"Движку по адресу {url} нужен вход. Сохраните пароль в «Развернуть» > «Соединение»…, затем повторите.","theElement":"{type}","theType":"{type}","thisKindOfSubProcess":"подпроцесс этого вида","value":{"text":"текст {value}"},"valueKind":{"boolean":"true или false","null":"null","number":"число","other":"{kind}","text":"текст"},"workerKind":{"jobType":"тип задания","topic":"тема"}},"testCases":{"count":{"instances":{"one":"1 экземпляр, {state}","other":"{count} экземпляра, {state}","few":"{count} экземпляра, {state}","many":"{count} экземпляров, {state}"},"testBuilds":{"one":"1 тестовая сборка","other":"{count} тестовые сборки","few":"{count} тестовые сборки","many":"{count} тестовых сборок"}},"elementIdMismatch":"{label} — это элемент {actual}, ожидался {expected}","engines":{"activityNotRunning":"экземпляр действия {element} не выполняется","answered":"{method} {path} ответил {status}{reason}","deployed":"развёрнуто","errorThrownByTheTestCase":"{code} выброшен тест-кейсом","reason":": {reason}","refusedTheBuild":"Движок отклонил тестовую сборку ({status}): {reason}"},"failingOnPurpose":"падает, как просит тест-кейс ({tried} из {total})","forOtherEngines":"этот тест-кейс для {engines}","leftovers":{"kept":"Не удалось удалить {builds}, оставшиеся после прерванного запуска; следующий запуск повторит попытку","removed":"Удалено {builds}, оставшихся после прерванного запуска"},"listSeparator":" и ","log":{"broadcast":"Рассылка {signal}","completed":"Завершено {label}","correlated":"Сопоставлено {message}","couldNotCancel":"Не удалось отменить экземпляр: {reason}","couldNotReadTheTrace":"Не удалось прочитать трассировку: {reason}","couldNotRemoveTheBuild":"Не удалось удалить тестовую сборку: {reason}","deployedTheBuild":"Тестовая сборка развёрнута","failedOnPurpose":"{label}: намеренно упало, {tried} из {total}","mockCompleted":"{label}: имитатор завершил задание","mockThrew":"{label}: имитатор выбросил {code}","noElementWithJobType":"На диаграмме нет элемента с типом задания {jobType}, поэтому его имитатор ничего не отвечает","startedInstance":"Запущен экземпляр {instance}"},"mismatch":{"activeExactly":"активен: {active}, ожидалось ровно {expected}","completedInOrder":"завершено в порядке {order}, ожидалось {expected}","hasNotCompleted":"не завершено","hasNotFailed":"{label} не упало{where}","incidentExpected":"ожидался открытый инцидент, его нет","incidentUnexpected":"открытого инцидента не ожидалось, а он есть в {elements}","instanceCount":"у {label} {count}, ожидалось {expected}{where}","instanceState":"ожидалось, что экземпляр будет {expected}, а он {actual}{where}","isActive":"активен","isNotActive":"не активен","notWaitingForAUser":"{label} не ждёт пользователя{where}","userTaskNotCompleted":"{label} не завершена{where}","variableNotSet":"переменная {name} не задана","variableValue":"{name} — {actual}, ожидалось {expected}","wasNotCanceled":"{label} не отменили{where}","wasNotReached":"{label} не достигнут{where}","wasNotTerminated":"не завершено","wasReached":"достигнут"},"needsCreateProcessInstance":"тест-кейс начинается с CREATE_PROCESS_INSTANCE, после своих имитаторов","noElementNamed":"на диаграмме нет элемента с именем {name}","notActiveSoNoVariables":"{label} не активен, поэтому его переменные задать нельзя","notInDiagram":{"one":"тест-кейс ожидает {ids}, которого нет на этой диаграмме","other":"тест-кейс ожидает {ids}, которых нет на этой диаграмме","few":"тест-кейс ожидает {ids}, которых нет на этой диаграмме","many":"тест-кейс ожидает {ids}, которых нет на этой диаграмме"},"nothing":"ничего","numberedCaseName":"{name} ({seen})","one":"один","penstockFailed":"Ошибка Penstock: {reason}","problem":{"behaviourNeedsErrorCode":"поведению {element} нужен errorCode","behaviourNeedsThen":"поведению {element} нужно then: complete, error, fire или hold","behavioursNotAnObject":"x-penstock.behaviours не является объектом","blockNotAnObject":"x-penstock не является объектом","caseHasNoInstructions":"у тест-кейса «{name}» нет указаний","caseHasNoName":"у тест-кейса {number} нет имени","enginesList":"x-penstock.engines это список из {engines}","fileLeftAsItIs":"файл оставлен как есть: {problems}","fileNotValidJson":"файл не является корректным JSON, поэтому оставлен как есть: сначала исправьте его","hasNoInstructions":"у него нет указаний","hasNoName":"у него нет имени","inCase":"тест-кейс «{name}»: {problem}","instructionNeeds":"указанию {number} ({type}) нужно {property}","instructionNotAllowed":"у указания {number} ({type}) есть {property}, чего схема тест-кейсов Camunda не допускает","noTestCasesList":"нет списка testCases","notAnObject":"это не объект","notJson":"не JSON: {reason}","shapelessInstruction":"указание {number} не является объектом с типом"},"safety":{"refusal":"Penstock отвечает на задания только на движке, предназначенном для тестов, а {where} не помечен как такой. Пометьте профиль в penstock.yaml пометкой deployment.forTests: true или запускайте на локальном движке.","thisEngine":"этот движок"},"scenarioName":{"boundaryFires":"{boundary} срабатывает","way":"{decision}: {way}"},"startsOnAnEvent":"Этот процесс начинается с события: {kind}. Penstock пока не может начать с него сценарий.","suites":{"cannotBeRead":"{suite} не удаётся прочитать","cannotRun":"не удаётся выполнить","noDiagram":"к {suite} не относится ни одна диаграмма","noEngineToRunOn":"для {diagram} не задан движок: укажите deployment.url в penstock.yaml","traceOf":"трассировка {name}: {where}","unlicensed":"Запуски тестов процессов: входят в Penstock Pro","unnamedCase":"тест-кейс {number}"},"toFillIn":"Нужно заполнить: {unresolved}","trace":{"couldNotRead":"Не удалось прочитать {path}: движок ответил {status}{reason}","reason":": {reason}"},"unknownName":"?","unresolved":{"chooseVariables":"выберите переменные так, чтобы {condition} выполнялось","chooseVariablesWithout":"выберите переменные так, чтобы {condition} не выполнялось","noConditionForTheWay":"У «{decision}» нет условия для «{way}»: задайте его потокам условия, иначе тест не сможет выбрать путь","runsOncePerItem":"{name} выполняется один раз на элемент: повторите его COMPLETE_JOB для каждого"},"unrunnable":{"exampleData":"{type} пока не умеет использовать пример данных","foreignProcess":"{type} смотрит на процесс {foreign}, а Penstock следует только за экземпляром {root}","notYet":"{type} пока не то, что Penstock может выполнить","oneInstancePerTestCase":"Penstock выполняет один экземпляр на тест-кейс","runtimeInstructions":"{type} пока не умеет выполнять указания времени выполнения","shapelessInstruction":"указание {number} не является объектом с типом","unknown":"{type} не то, что Penstock может выполнить","userTaskFields":"ASSERT_USER_TASK пока не умеет проверять {fields}"},"waiting":{"engineDidNotRun":"движок не выполнил {label} за {seconds}","instanceNotShown":"движок не показал экземпляр за {seconds}","jobNotHandedOut":"движок не выдал задание {label} за {seconds}","messageFoundNothing":"сообщение {message} не нашло ожидающих за {seconds}","noJobAt":"задания в {where} не было за {seconds}","noUserTaskAt":"задачи пользователя {where} не было за {seconds}","noWorkerTook":"воркер не взял {type} за {seconds}","timerDidNotFire":"таймер {label} не сработал за {seconds}"},"whereAt":" в {elements}","kind":{"error":"событие ошибки","escalation":"событие эскалации","conditional":"условное событие"},"edit":{"nameEmpty":"Имя не должно быть пустым.","nameTaken":"Сценарий с именем {name} уже есть в этом файле, поэтому имя должно быть другим.","notFound":"В этом файле нет сценария с именем {name}.","copyName":"{name} копия","copyNumbered":"{name} копия {number}"},"taskTest":{"noProcess":"В диаграмме нет исполняемого процесса.","notFound":"В диаграмме нет элемента с идентификатором {element}.","noWay":"Ни один путь через процесс не доходит до {element}.","cannotThrow":"{element} - пользовательская задача, поэтому она не может выбросить ошибку; завершите её или оставьте в ожидании.","name":"Проверка задачи: {element}"}},"features":{"ai-chat":{"title":"Чат с ИИ","gives":"позволяет агенту, который работает по Agent Client Protocol, читать и проверять ваши диаграммы и предлагать изменения, которые вы просматриваете на холсте"},"alreadyBought":"если вы уже купили её","auto-layout":{"title":"Автораскладка","gives":"превращает запутанную диаграмму в читаемый поток слева направо"},"baseline":{"title":"Базовые линии проверки","gives":"делает сборку красной только из-за новых проблем"},"bot":{"title":"Бот проверки","gives":"отвечает на /penstock в pull и merge request вместе с изображениями"},"buyIt":"купите её; лицензия сама попадёт на эту машину","changes-pictures":{"title":"Изображения изменений","gives":"рисует, что изменилось, с подсветкой рядом с тем, как было"},"ci-annotations":{"title":"Проблемы в ревью кода","gives":"показывает проблемы проверки как SARIF или как аннотации на изменённых строках"},"code-links":{"title":"Проверки диаграмм и кода","gives":"находит задачи, у которых тип задания, тема, класс или бин нечем выполнить в коде, и воркеры, которые не использует ни одна диаграмма"},"docs":{"title":"Документация процессов","gives":"пишет страницу для каждого процесса с его рисунком, шагами, решениями, событиями и данными"},"edit":{"title":"Правка из командной строки","gives":"меняет диаграмму так же, как редактор, и отказывает в правке, которая её ломает"},"education":"Бесплатный Pro для студентов, преподавателей и мейнтейнеров открытого кода: подайте заявку на {url}","element-templates":{"title":"Шаблоны элементов","gives":"записывает шаблон элемента для каждого воркера заданий проекта, чтобы палитра Camunda заполнялась сама"},"flow-analysis":{"title":"Анализ потоков","gives":"находит дедлоки, ветви, которые выполняются дважды, и шаги, которые не могут выполниться, вместе с путём к ним"},"giveThePipelineAKey":"Задайте этому конвейеру ключ {tier} в секрете PENSTOCK_LICENSE.","inAPipeline":" в конвейере","migration":{"title":"Конвертация с Camunda 7 на Camunda 8","gives":"конвертирует диаграмму для Camunda 8, помечает на элементе то, что конвертировать не удалось, и пишет воркеры заданий по коду ваших делегатов"},"partOf":"{title}{where}: входит в Penstock {tier}. {gives}.","paths":{"title":"Сценарии процессов","gives":"перечисляет все различные пути по процессу с условиями, которые их определяют, готовые стать планом тестирования"},"pr-report":{"title":"Отчёты для pull request","gives":"пишет один комментарий с проверкой, различием и изображениями каждой изменившейся диаграммы"},"test-case-generation":{"title":"Файлы тест-кейсов","gives":"записывает файлы тест-кейсов для каждого пути по каждому процессу, которые затем воспроизводит scenarios run на движке"},"test-runs":{"title":"Запуски тестов процессов","gives":"выполняет процесс по шагам на локальном движке с имитаторами и показывает, что каждый шаг получил и изменил"},"tests":{"title":"Тесты процессов","gives":"пишет JUnit-тест для каждого пути по процессу с переменными, которые туда ведут, для Camunda Process Test или camunda-bpm-assert"},"theKeyHolds":"В PENSTOCK_LICENSE лицензия {have}, а здесь нужна {need}.","trialHasEnded":"Ваш пробный период в {days} дней закончился.","variable-checks":{"title":"Проверки переменных","gives":"проверяет поля и имена переменных, которые читает шаг, по коду, который их задаёт"}},"license":{"activeOnThisMachine":"активна на этой машине","ago":{"days":"{count} дней назад","months":"{count} месяцев назад","today":"сегодня","yesterday":"вчера"},"checkoutNotHttps":"страница оплаты не по https, поэтому она не открывается: {protocol}","checkoutNotOpened":"страницу оплаты открыть не удалось","checkoutNotOpenedStatus":"страницу оплаты открыть не удалось ({status})","clockSetBack":"системные часы переведены назад, за время, которое эта машина уже видела; поставьте их правильно","codeWrongOrExpired":"Этот код неверен или истёк. Запросите новый.","couldNotBeReachedForATrial":"не удалось обратиться к службе лицензий, чтобы начать пробный период Pro","couldNotBeReachedForTheKey":"не удалось обратиться к службе лицензий, чтобы проверить PENSTOCK_LICENSE","count":{"days":{"one":"{count} день","other":"{count} дня","few":"{count} дня","many":"{count} дней"},"moreDays":{"one":"ещё {count} день","other":"ещё {count} дня","few":"ещё {count} дня","many":"ещё {count} дней"}},"fromTheEnvironmentKey":"из PENSTOCK_LICENSE","needsOneOnlineCheck":"этой лицензии нужна одна проверка онлайн, чтобы продлиться","noCheckoutYet":"страницы оплаты для {tier} пока нет","noLicenceInCi":"лицензии нет; задайте PENSTOCK_LICENSE для этого конвейере","noStableMachineId":"у этой машины нет системного идентификатора, поэтому она не может начать пробный период Pro; активируйте лицензию","notAValidKey":"PENSTOCK_LICENSE не является корректным ключом Penstock","notAnEmailAddress":"Это не похоже на адрес электронной почты.","notRenewed":"лицензия не продлевалась {days} дней; подключитесь один раз, чтобы сохранить её","offlineForAWhile":"офлайн; работает {days} до того, как понадобится проверка","reason":{"cannotBeRead":"лицензию не удаётся прочитать","datedInTheFuture":"лицензия датирована будущим; проверьте часы","notSigned":"лицензия не подписана Penstock","otherMachine":"эта лицензия принадлежит другой машине"},"refusedToStartATrial":"служба лицензий отказала в запуске пробного периода","seatsFullHint":" Войдите командой `penstock license login`, чтобы увидеть машины, которые её используют, и освободить одну.","serviceAnswered":"служба лицензий ответила {status}","theLicenceWasRefused":"В лицензии отказано.","trialDaysLeft":"Пробный период Pro, осталось {days}","trialHasEnded":"пробный период Pro закончился","unusable":"Служба лицензий ответила лицензией, которой нельзя пользоваться: {reason}."},"output":{"accepted":"принято: {count}","alreadyThereAndKept":", ещё {count} есть и оставлены без изменений","authHint":{"basic":"Проверьте deployment.auth.username в penstock.local.yaml и PENSTOCK_PASSWORD.","oauth":"Проверьте deployment.auth.clientId и deployment.auth.tokenUrl в penstock.local.yaml и PENSTOCK_CLIENT_SECRET.","setIt":"Задайте deployment.auth в penstock.local.yaml: type basic с именем пользователя и PENSTOCK_PASSWORD либо type oauth с PENSTOCK_CLIENT_SECRET; PENSTOCK_TOKEN отправляет bearer-токен как есть."},"boundaryFires":"{decision}: {boundary} срабатывает","classNeedsDependency":"Классу нужна такая тестовая зависимость{where}:","complete":"завершить","confirmInTerminal":"Выполнить тест-кейсы на {url}? Они развернут там тестовую сборку, запустят экземпляры и ответят на задания, которые имитируют. [y/N] ","couldNotRememberBuilds":"Penstock не смог запомнить свои тестовые сборки в {file}:","count":{"class":{"one":"{count} класс","other":"{count} класса","few":"{count} класса","many":"{count} классов"},"diagram":{"one":"{count} диаграмма","other":"{count} диаграммы","few":"{count} диаграммы","many":"{count} диаграмм"},"file":{"one":"{count} файл","other":"{count} файла","few":"{count} файла","many":"{count} файлов"},"finding":{"one":"{count} проблема","other":"{count} проблемы","few":"{count} проблемы","many":"{count} проблем"},"lostConnection":{"one":"{count} потерянная связь","other":"{count} потерянные связи","few":"{count} потерянные связи","many":"{count} потерянных связей"},"reference":{"one":"{count} ссылка","other":"{count} ссылки","few":"{count} ссылки","many":"{count} ссылок"},"scenario":{"one":"{count} сценарий","other":"{count} сценария","few":"{count} сценария","many":"{count} сценариев"},"sourceFile":{"one":"{count} исходный файл","other":"{count} исходных файла","few":"{count} исходных файла","many":"{count} исходных файлов"},"test":{"one":"{count} тест","other":"{count} теста","few":"{count} теста","many":"{count} тестов"},"way":{"one":"{count} путь","other":"{count} пути","few":"{count} пути","many":"{count} путей"},"worker":{"one":"{count} воркер","other":"{count} воркера","few":"{count} воркера","many":"{count} воркеров"}},"decisionWay":"{decision}: {way}","end":"конец","everyRuleHasAPage":"У каждого правила есть страница с тем, почему это важно и как это исправить: {url}","everyTaskHasCode":"У каждой задачи, которую диаграммы отдают коду, в коде есть что-то, что её выполняет.","firesOn":"{boundary} срабатывает на {decision}","fixedSinceTheBaseline":"исправлено с базовой линии: {count}","flowAnalysisLeftOut":"Анализ потоков пропущен: он входит в Penstock Pro, а в конвейере — в Team. penstock license buy","fromDiagramsToCode":"{sources}, {diagrams}, {references} от диаграмм к коду","inFile":" в {file}","kind":{"decision":"решение","form":"форма","notBpmn":"файл, который не BPMN"},"layoutAlwaysReflows":"Автораскладка всегда перерисовывает схему, поэтому различие здесь ожидаемо; передайте --write, чтобы принять его.","newCount":"новых: {count}","newFindings":"новых: {count}","noBpmnFiles":"Файлы .bpmn не найдены.","noChange":"без изменений","noExecutableProcessWithAWay":"нет запускаемого процесса с путём, который начинается в простом стартовом событии","noLostConnections":"потерянных связей нет","noProcessWithAPath":"Процесс с путём до конца не найден.","noSteps":"шагов нет","noSuchPath":"Пути {target} нет","isAFolder":"{file} — это папка, а не файл.","folderTooLarge":"Эта папка слишком велика, чтобы быть проектом; укажите папку с диаграммами","noTestCaseFile":"файла тест-кейсов нет; penstock scenarios generate записывает {file}","noTestCaseFiles":"Файлы тест-кейсов не найдены. penstock scenarios generate записывает их по путям каждого процесса.","noTestCaseFilesFirst":"Файлы тест-кейсов не найдены. penstock scenarios generate записывает их первыми.","notABpmnDiagram":"{file} — это {kind}, а не диаграмма BPMN, поэтому показывать нечего.","notConfirmedForTests":"Не выполнено: движок не подтверждён для тестов","notMarkedForTests":"{url} не помечен deployment.forTests: выполните в терминале, чтобы подтвердить один раз, или пометьте профиль пометкой deployment.forTests: true","notValid":"{file} не является корректным {what}: {reason}","notValidFile":"Этот файл не является корректным {what}: {reason}","nothingNew":"нового нет","nothingToDeploy":"Разворачивать нечего: ни в одном файле нет deployment.url.","penstockOnlyCases":" тест-кейсы, которым нужен Penstock и которые там выполняются иначе ({count}): {names}","penstockBehaviourHints":"в шагах есть подсказки поведения Penstock, которых Camunda Process Test не читает","whyItMatters":"Почему это важно. {why}","howToFixIt":"Как это исправить. {fix}","see":"Смотрите {docs}","pipelineCannotConfirm":"{url} не помечен deployment.forTests, а конвейер не может это подтвердить: пометьте профиль пометкой deployment.forTests: true","ready":"готово","reflowedLayout":"перерисованная раскладка","rulesCouldNotRun":"Правила выполнить не удалось: {reason}","unresolvedReference":"{id} указывает на {value} в свойстве {property}, но в файле нет элемента с таким id.","runUpdateBaseline":"Выполните check --update-baseline, чтобы записать, что исправлено.","stopped":"Остановлено: {totals}","tasksPointAtNothing":"Задачи, указывающие на несуществующий код: {count}.","testsNeedDependencies":"Тестам нужны такие тестовые зависимости{where}:","testsSummary":"{tests} в {classes}, по одному на каждый путь по процессу.","theConnectionFromTo":"связь от {from} к {to}","theFileIsEmpty":"Этот файл пуст","theKind":"{kind}","toFillIn":"нужно заполнить: {count}","toFillInPrefix":"Нужно заполнить","totals":"Всего {files}: успешно {passed}, с ошибкой {failed}, пропущено {skipped}","unresolvedWorker":"заметка {workers} с типом, записанным выражением, которое не удалось прочитать, начиная с {where}","when":" когда {condition}","wouldReflowLayout":"будет перерисована раскладка (передайте --write, чтобы сохранить)","wroteFindings":"записано {file} с {findings}","wroteTestEngine":"записано {file} тестовый движок в памяти, который разрешает имитированные бины делегатов","wroteTheBridge":"записано {file} выполняет {files} в Camunda Process Test","classNotInProject":"класса {value} нет в проекте","listenerName":"слушатель {value}","runsSteps":"- [ ] выполняет {steps}","wroteScenarios":"записано {file} {scenarios}{toFillIn}","andToFillIn":{"one":", нужно заполнить: {count}","other":", нужно заполнить: {count}","few":", нужно заполнить: {count}","many":", нужно заполнить: {count}"},"couldNotBePlanned":", {ways} спланировать не удалось: {problem}","status":{"ok":"ок","pass":"прогон","fail":"сбой","note":"заметка","skip":"пропуск","same":"без разницы","change":"изменение","wrote":"записал","sent":"отправил","updated":"обновил","added":"добавил","removed":"удалил","changed":"изменил","kept":"оставил","wouldChange":"изменит","wouldRewrite":"перепишет","wouldSend":"отправит","error":"ошибка","warning":"предупреждение","info":"инфо"},"noDeploymentUrl":"в его настройках нет deployment.url","authNote":{"passwordNotRead":"deployment.auth.password не читается: пароль берётся из PENSTOCK_PASSWORD или из хранилища паролей IDE, но не из файла"},"authProblem":{"basicWithoutUsername":"deployment.auth.type задан как basic, но deployment.auth.username не задан","basicWithoutPassword":"deployment.auth.type задан как basic, но пароля нет: задайте PENSTOCK_PASSWORD (IDE хранит его в своём хранилище паролей)","oauthWithoutKeys":"deployment.auth.type задан как oauth, но нужны deployment.auth.tokenUrl, deployment.auth.clientId и PENSTOCK_CLIENT_SECRET","oauthFailed":"эндпоинт токена ответил {status}: {body}","oauthNeedsKeys":"для oauth нужны deployment.auth.tokenUrl, deployment.auth.clientId и PENSTOCK_CLIENT_SECRET","oauthNoToken":"в ответе эндпоинта токена нет access_token","oauthUnreachable":"эндпоинт токена по адресу {url} не ответил: {reason}"},"unreadableBpmn":"этот файл не является корректным BPMN XML","noWorkerForJobType":"тип задания {value} никто не выполняет","noWorkerForTopic":"на тему {value} никто не подписан из воркеров внешних заданий","noBeanNamed":"бин Spring с именем {value} не задан","callsNoProjectProcess":"вызывает процесс {value}, которого нет ни на одной диаграмме проекта","callsNoProjectDecision":"вызывает решение {value}, которого нет ни в одном файле .dmn проекта","showsNoProjectForm":"показывает форму {value}, которой нет ни в одном файле .form проекта","showsNoEmbeddedForm":"показывает встроенную форму {value}, которой на диаграмме нет","jobTypeNoDiagramUses":"воркер для типа задания {value} не используется ни одной диаграммой","topicNoDiagramUses":"подписка на тему {value} не используется ни одной диаграммой","noJUnitBridge":"у {engine} пока нет моста JUnit: направьте профиль на engine-rest вашего приложения и выполните penstock scenarios run","casesFolder":"Camunda Process Test читает тест-кейсы из src/test/resources/test-cases; перенесите файл туда","couldNotBePainted":"схему не удалось отрисовать","credentialsRefused":"Учётные данные не приняты. {hint}","noGeneratedTests":"Для проектов {engine} тесты пока не создаются; Penstock пишет тесты для Camunda 7, Operaton, CIB seven и Camunda 8","noDeployFor":"Развёртывание в {engine} не поддерживается; разверните средствами самого движка","taskTest":{"unreadable":"Не удаётся прочитать {file}.","needsDiagram":"Укажите диаграмму для проверки: penstock test task <file.bpmn> --element <id>.","needsElement":"Укажите элемент для проверки через --element <id>.","element":"{element}: {state}","notReached":"Элемент {element} не был достигнут.","instance":"Экземпляр процесса: {state}","received":"Получено:","sent":"Отправлено:","variables":"Переменные в конце:","noIncidents":"Инцидентов нет.","incidents":"Инциденты:","trace":"Трассировка: {file}","badVariables":"{flag} не является JSON-объектом: {reason}","oneMode":"Используйте только один из флагов --complete, --error и --hold.","state":{"COMPLETED":"завершён","ACTIVE":"ожидает","TERMINATED":"прерван","FAILED":"с ошибкой"}}},"templates":{"drift":{"differentType":"содержит {name} другого типа","noLongerRead":"запрашивает {name}, которого воркер больше не читает","notRead":"содержит {name}, который воркер больше не читает"},"workerDescription":"Воркер заданий {worker} в {where}.","workerSets":" Задаёт {names}.","workerInPackage":"{class} в пакете {package}","writtenByPenstock":"Написан Penstock по коду.","rejected":{"line":"Шаблон {name} ({id}) не загружен: {reason}","notAnObject":"это должен быть JSON-объект","schemaMissing":"должен быть атрибут $schema, указывающий на схему шаблонов элементов Camunda 8","schemaOther":"атрибут $schema должен указывать на схему шаблонов элементов Camunda 8","elementType":"elementType должен быть объектом, в value которого назван элемент BPMN, например bpmn:ServiceTask","appliesTo":"appliesTo должен быть списком типов элементов BPMN, например bpmn:Task","unexplained":"модельер Camunda его не принимает и не объясняет почему","anonymous":"Шаблон не загружен: {reason}"}},"connectors":{"archiveDamaged":"Архив релиза повреждён или неполон","archiveHasNoTemplates":"В архиве релиза нет шаблонов элементов","archiveTooLarge":"Архив релиза распаковывается больше чем в 512 МБ","couldNotBeDownloaded":"Шаблоны коннекторов скачать не удалось","githubAnswered":"GitHub ответил HTTP {status}","githubRefused":"GitHub отклонил запрос (HTTP {status}), скорее всего из-за лимита запросов; попробуйте позже","responseTooLarge":"Ответ больше 64 МБ"},"evaluate":{"camunda7Cannot":"В Camunda 7 нет способа вычислить выражение. Нужна Camunda 8.9 или новее.","expressionNotEvaluated":"Вычислить выражение не удалось","instancesNotReadable":"Экземпляры {process} прочитать не удалось","needs810":"Camunda 8.10 или новее","needs89":"Camunda 8.9 или новее","processDefinitionNotReadable":"Определение процесса {process} прочитать не удалось","variableNamesNotReadable":"Имена переменных, которые видел движок, прочитать не удалось","variableNotReadable":"Переменную {name} прочитать не удалось","variablesNotReadable":"Переменные {instance} прочитать не удалось","credentialsMayNotAllow":"учётные данные профиля могут не давать на это права","engineAnswered":"{what}: движок ответил {status}","needsThatVersion":"для {what} нужна Camunda {version} или новее."},"findings":{"because":": {reason}","notValid":"Файл не является корректным {what}{reason}","nothingInIt":"Файл пуст, поэтому открывать нечего.","soItCannotBeOpened":", поэтому его нельзя открыть или проверить.","theFileCannotBeRead":"Файл не удаётся прочитать","theFileIsEmpty":"Файл пуст"},"sections":{"hitPolicy":{"any":"Любое: подходит несколько правил, если они дают одинаковый результат","collect":"Собрать: каждое подходящее правило даёт свой вклад","first":"Первое: побеждает первое подходящее правило","outputOrder":"Порядок вывода: все подходящие правила по приоритету вывода","priority":"Приоритет: побеждает подходящее правило с наивысшим приоритетом вывода","ruleOrder":"Порядок правил: все подходящие правила в порядке правил","unique":"Уникальное: подходит ровно одно правило"},"hitPolicyText":"Политика попаданий {policy}{aggregation}.","resultsCombinedBy":", результаты объединяются по {how}","whenInput":"Когда {input}","thenOutput":"Тогда {output}","inputOf":"вход {number}","outputOf":"выход {number}","optionsFrom":"из {source}","fieldTable":"Поля","field":"Поле","kind":"Вид","writes":"Записывает","required":"Обязательное","options":"Варианты","hiddenWhen":"Скрыто, когда","yes":"да","notes":"Заметки","result":"Результат","expression":"Выражение","logic":"Логика","noLogic":"нет","decision":"Решение","needs":"Нужны","formKind":{"textfield":"текстовое поле","textarea":"многострочное текстовое поле","datetime":"дата и время","taglist":"список тегов","filepicker":"выбор файла"},"form":"Форма"},"xml":{"emptyOrNotClosed":"Это не корректный XML: документ пуст или не закрыт","notWellFormed":"Это не корректный XML: {reason}"},"import":{"failure":{"nothingToImport":"В этом файле {format} нет ничего со смыслом BPMN, поэтому импортировать нечего.","bizagiPackage":"Файлы Bizagi .bpm — это пакет в собственном формате Bizagi Modeler, который Penstock не читает. В Bizagi Modeler экспортируйте процесс как BPMN 2.0 (файл .bpmn) и импортируйте его.","visioBinary":"{name} записан в старом двоичном формате Visio (.vsd), который Penstock не читает. В Visio выберите File > Save As и Visio Drawing (.vsdx), а затем импортируйте его.","xpdl":"Это XPDL, в котором нет диаграммы в форме, читаемой Penstock. В инструменте, откуда он взят, экспортируйте процесс как BPMN 2.0 (.bpmn) и импортируйте его.","unknownFormat":"{name} не является диаграммой, которую Penstock может импортировать. Он читает файлы draw.io, Visio, Signavio и Bizagi.","notBpmnXml":"Этот XML не BPMN 2.0.","noPositions":"В этом файле BPMN нет позиций диаграммы (нет BPMNDiagram), поэтому рисовать нечего. Откройте его в редакторе, который раскладывает схему, или нарисуйте в Penstock.","entryTooLarge":"{name} слишком велик для импорта.","archiveTooLarge":"Архив слишком велик для импорта.","notZip":"Файл не является читаемым ZIP-архивом.","pageTooLarge":"Эта страница draw.io слишком велика для импорта.","pageEmpty":"На этой странице draw.io нет содержимого.","compressedPage":"Сжатую страницу draw.io прочитать не удалось. В draw.io снимите File > Properties > Compressed или выберите File > Export as > XML и импортируйте его.","pageNoCells":"На этой странице draw.io нет ячеек.","noPages":"В этом файле draw.io нет страниц.","notVisio":"Этот архив не является рисунком Visio: в нём нет visio/document.xml. Читаются только файлы .vsdx.","noVisioPages":"В этом рисунке Visio нет страниц.","noShapes":"В этом рисунке Visio нет фигур."},"note":{"packageImported":"Файл BPMN {name} внутри пакета импортирован.","vendorData":"Данные {vendor} не перенесены, потому что в BPMN 2.0 для них нет места ({total}): {list}.","unknownEvent":"У символа события «{symbol}» нет типа события BPMN, поэтому у события нет триггера.","diamond":"{shape} — ромб, поэтому он стал исключающим шлюзом.","freeText":"{shape} — свободный текст, поэтому он стал текстовой аннотацией.","noteShape":"{shape} — заметка, поэтому она стала текстовой аннотацией.","rectangle":"{shape} — обычный прямоугольник, поэтому он стал задачей.","anUnlabelledShape":"Фигура без подписи","unmappedLabelled":"«{label}» ({shape}) не имеет смысла в BPMN, поэтому не импортирован.","unlabelledShape":{"one":"Фигура {shape} без подписи не имеет смысла в BPMN, поэтому не импортирована.","other":"{count} фигуры {shape} без подписи не имеют смысла в BPMN, поэтому не импортированы.","few":"{count} фигуры {shape} без подписи не имеют смысла в BPMN, поэтому не импортированы.","many":"{count} фигур {shape} без подписи не имеют смысла в BPMN, поэтому не импортированы."},"untitled":"без названия","aStartEvent":"стартовое событие","anEndEvent":"событие завершения","anIntermediateEvent":"промежуточное событие","circle":"{shape} — круг, поэтому он стал {kind}.","anUnlabelledCircle":"Круг без подписи","aShape":"фигура","unlabelledMaster":"Фигура {shape} без подписи не имеет смысла в BPMN, поэтому не импортирована.","shape":"фигура","laneAsPool":"Дорожка {node} не была внутри пула, поэтому стала пулом.","boundaryEvent":"Граничное событие {node} не было на действии, поэтому стало промежуточным событием-ловушкой.","flowNotAttached":"{flow} не привязан к двум фигурам, поэтому он оставлен как есть.","flowOnLane":"{flow} привязан к дорожке, чего поток BPMN делать не может, поэтому он оставлен как есть.","dataAssociation":"Соединитель между элементом данных и {node} стал обычной ассоциацией, потому что этот элемент не умеет читать и писать данные.","flowToPool":"{flow} заканчивается в пуле, поэтому стал потоком сообщений.","flowAcrossPools":"{flow} идёт из {from} в {to} в другом пуле, поэтому стал потоком сообщений.","messageInsidePool":"{flow} это поток сообщений внутри одного пула, чего BPMN не допускает, поэтому он стал ассоциацией.","flowAcrossSubProcess":"{flow} пересекает границу подпроцесса, чего поток управления делать не может, поэтому он стал ассоциацией.","multipleEvent":"{node} — событие {kind}; в BPMN нужно знать, какие триггеры у него есть, поэтому это простое событие.","dataObjects":{"one":"{count} объект данных стал ссылкой на объект данных, как их рисует редактор.","other":"{count} объекта данных стали ссылками на объекты данных, как их рисует редактор.","few":"{count} объекта данных стали ссылками на объекты данных, как их рисует редактор.","many":"{count} объектов данных стали ссылками на объекты данных, как их рисует редактор."},"otherPage":{"one":"Страница «{page}» ({shapes} фигура) не импортирована, импортируется только первая страница с содержимым.","other":"Страница «{page}» ({shapes} фигуры) не импортирована, импортируется только первая страница с содержимым.","few":"Страница «{page}» ({shapes} фигуры) не импортирована, импортируется только первая страница с содержимым.","many":"Страница «{page}» ({shapes} фигур) не импортирована, импортируется только первая страница с содержимым."},"otherVisioPage":{"one":"Страница «{page}» ({shapes} фигура) не импортирована, импортируется только первая страница с фигурами.","other":"Страница «{page}» ({shapes} фигуры) не импортирована, импортируется только первая страница с фигурами.","few":"Страница «{page}» ({shapes} фигуры) не импортирована, импортируется только первая страница с фигурами.","many":"Страница «{page}» ({shapes} фигур) не импортирована, импортируется только первая страница с фигурами."},"customData":{"one":"Пользовательские данные {count} фигуры не перенесены: {keys}.","other":"Пользовательские данные {count} фигуры не перенесены: {keys}.","few":"Пользовательские данные {count} фигур не перенесены: {keys}.","many":"Пользовательские данные {count} фигур не перенесены: {keys}."},"genericConnectors":{"one":"{count} соединитель не из набора BPMN прочитан как потоки управления.","other":"{count} соединителя не из набора BPMN прочитаны как потоки управления.","few":"{count} соединителя не из набора BPMN прочитаны как потоки управления.","many":"{count} соединителей не из набора BPMN прочитаны как потоки управления."},"rotated":{"one":"{count} фигура повёрнута, поворот не перенесён.","other":"{count} фигуры повёрнуты, поворот не перенесён.","few":"{count} фигуры повёрнуты, поворот не перенесён.","many":"{count} фигур повёрнуты, поворот не перенесён."},"outsidePools":{"one":"{count} элемент вне всех пулов попал в ближайший пул: {names}.","other":"{count} элемента вне всех пулов попали в ближайший пул: {names}.","few":"{count} элемента вне всех пулов попали в ближайший пул: {names}.","many":"{count} элементов вне всех пулов попали в ближайший пул: {names}."},"unnamed":"{kind} без имени"},"summary":"Импортировано из {format}: {counts}.","noteSection":"{title} ({count}):","noteHeading":"{count} {title}","importedName":"импортировано","noteTitle":{"unmapped":"Не импортировано","assumed":"Угадано","lost":"Не перенесено"},"count":{"element":{"one":"{count} элемент","other":"{count} элемента","few":"{count} элемента","many":"{count} элементов"},"flow":{"one":"{count} поток","other":"{count} потока","few":"{count} потока","many":"{count} потоков"},"pool":{"one":"{count} пул","other":"{count} пула","few":"{count} пула","many":"{count} пулов"},"lane":{"one":"{count} дорожка","other":"{count} дорожки","few":"{count} дорожки","many":"{count} дорожек"}},"cellOf":"ячейка {number}","addedAs":"добавлено как {cell}","theRule":"правило","removed":"удалено","unnamedConnector":"соединитель без имени","parallelMultiple":"параллельный множественный"},"rules":{"families":{"bpmnlint":{"title":"Правила моделирования","about":"Правила bpmnlint, которые выполняются на каждой диаграмме BPMN, в редакторе и в `penstock check`. Какие именно и насколько строго они работают, задаётся в `.bpmnlintrc`."},"compat":{"title":"Совместимость с движком","about":"Что не может выполнить движок, для которого написана диаграмма: отсутствующий тип задания, элемент или выражение, которого нет в выбранной версии. Они работают на диаграммах Camunda 7 и Camunda 8, в редакторе и в `penstock check`, против версии из `modeler:executionPlatformVersion` в файле или самой новой без неё. Operaton и CIB seven проверяются как Camunda 7. Проблема называется `compat/<rule>` и здесь, и в `penstock check`; правило выключается в `.bpmnlintrc` как `camunda-compat/<rule>` или, то же самое, `compat/<rule>`."},"drawing":{"title":"Рисунок","about":"Что не так с тем, как нарисована диаграмма; это находит карточка проверки в редакторе и первый раздел `penstock check`. Ошибки ломают рисунок, остальные затрудняют чтение."},"flow":{"title":"Поток процесса","about":"Что может случиться при выполнении с тем, как соединён процесс. Входит в Penstock Pro, а в конвейере — в Team."},"table":{"title":"Таблицы решений","about":"Что таблица решений DMN делает с входами, которые ей могут дать. Входит в Penstock Pro, а в конвейере — в Team."},"form":{"title":"Формы","about":"Что Camunda Form делает с тем, что вводит пользователь. Входит в Penstock Pro, а в конвейере — в Team."},"code":{"title":"Диаграммы и код","about":"Где диаграмма расходится с кодом, который её выполняет: шаг, который ничего не реализует, воркер, который не использует ни одна диаграмма, переменная, которую читают под другим именем, чем задают."},"convention":{"title":"Соглашения по моделированию","about":"Соглашения, которые редактор применяет при моделировании, чтобы команде не нужно было их запоминать. Они задаются в `penstock.yaml` в разделе `conventions`."},"engine":{"title":"Flowable и Activiti","about":"То, что движок Flowable или Activiti игнорирует или не может выполнить: расширение другого движка, атрибут, которого движок не знает, элемент, который он не поддерживает. Правила работают на диаграммах профилей Flowable и Activiti, в редакторе и в `penstock check`. Находка называется `engine/<правило>`."}},"bpmnlint/ad-hoc-sub-process":{"title":"Подпроцесс по требованию со стартовым событием или событием завершения","why":"У подпроцесса по требованию нет определённого начала и конца: его действия выполняются, когда их выберут, поэтому событие, отмечающее то или другое, ничего не значит.","fix":"Удалите стартовое событие и событие завершения внутри подпроцесса по требованию."},"bpmnlint/conditional-event":{"title":"Условное событие без условия","why":"Условное событие без условия никогда не сработает.","fix":"Задайте событию выражение условия."},"bpmnlint/conditional-flows":{"title":"Условный поток без условия","why":"Поток, выходящий из задачи или события, помеченного как условный, но без условия, либо срабатывает всегда, либо никогда, и движок не может их различить.","fix":"Задайте потоку условие или сделайте его обычным потоком."},"bpmnlint/end-event-required":{"title":"Процесс или подпроцесс без события завершения","why":"Без события завершения читатель не видит, где заканчивается процесс, а некоторые движки отказываются его выполнять.","fix":"Добавьте событие завершения в конец каждого пути."},"bpmnlint/event-based-gateway":{"title":"Шлюз по событиям использован неверно","why":"Шлюз по событиям ждёт первое из нескольких событий, поэтому из него должно выходить хотя бы два потока, и ни один не может быть условным.","fix":"Дайте шлюзу два или больше исходящих потока к событиям и уберите их условия."},"bpmnlint/event-sub-process-typed-start-event":{"title":"Старт подпроцесса по событию без события","why":"Подпроцесс по событию начинается, когда происходит его событие, поэтому пустое стартовое событие ничего не говорит о времени.","fix":"Задайте стартовому событию тип: сообщение, таймер, ошибка, сигнал или другой."},"bpmnlint/fake-join":{"title":"Несколько потоков входят в задачу, которая их не объединяет","why":"Объединяют потоки только шлюзы; несколько потоков в задачу запускают её по разу на каждый токен, что редко соответствует рисунку.","fix":"Объедините потоки шлюзом подходящего вида перед задачей."},"bpmnlint/global":{"title":"Глобальный элемент без имени, неиспользуемый или неуникальный","why":"Сообщение, сигнал или ошибку без имени, неиспользуемую или названную дважды нельзя отличить от другой.","fix":"Дайте элементу имя, используйте его или удалите."},"bpmnlint/label-required":{"title":"Элемент без подписи","why":"Задача, событие или шлюз без подписи ничего не говорят читателю о том, что там происходит.","fix":"Дайте элементу имя."},"bpmnlint/link-event":{"title":"Событие связи без имени или без пары","why":"Событие отправки по связи переходит к событию-ловушке с тем же именем в той же области, поэтому имя нужно обоим.","fix":"Дайте имена событиям связи и сделайте так, чтобы каждое отправляющее имело пару-ловушку."},"bpmnlint/no-bpmndi":{"title":"Элемент без места на диаграмме","why":"Элемент, который есть в процессе, но не на холсте, нельзя увидеть, выбрать или исправить в редакторе.","fix":"Добавьте элемент на диаграмму или удалите его из файла."},"bpmnlint/no-complex-gateway":{"title":"Составной шлюз","why":"Составной шлюз хранит логику, которая нигде не записана так, чтобы её мог увидеть читатель, и поддерживают его немногие движки.","fix":"Замените его исключающим, включающим или параллельными шлюзами."},"bpmnlint/no-disconnected":{"title":"Элемент без входящего или исходящего потока","why":"Элемент, к которому ничего не ведёт и из которого ничего не выходит, либо забыт, либо мёртв.","fix":"Соедините элемент с потоком или удалите его."},"bpmnlint/no-duplicate-sequence-flows":{"title":"Два одинаковых потока между одними и теми же элементами","why":"Два потока из одного источника в одну цель либо делают одно и то же дважды, либо не говорят ничего нового.","fix":"Удалите повторяющийся поток."},"bpmnlint/no-gateway-join-fork":{"title":"Шлюз, который и объединяет, и разделяет","why":"Шлюз, который в одной фигуре и объединяет потоки, и снова разделяет, читают как одно из двух, а второе теряется.","fix":"Разделите его на шлюз, который объединяет, и шлюз, который разделяет."},"bpmnlint/no-implicit-end":{"title":"Путь, который заканчивается без события завершения","why":"Путь, который просто обрывается, заставляет читателя угадывать, так ли задумано.","fix":"Добавьте событие завершения после последнего элемента пути."},"bpmnlint/no-implicit-split":{"title":"Задача, разделяющая поток без шлюза","why":"Несколько потоков из задачи запускают их все сразу или ни один, в зависимости от условий, которых никто не видит.","fix":"Добавьте после задачи шлюз и разделяйте там."},"bpmnlint/no-implicit-start":{"title":"Путь, который начинается без стартового события","why":"Элемент без входящего потока начинается сам по себе, и его легко принять за забытое соединение.","fix":"Добавьте стартовое событие перед элементом или соедините его с путём, к которому он относится."},"bpmnlint/no-inclusive-gateway":{"title":"Включающий шлюз","why":"Включающий шлюз может выбрать любое число выходов, что трудно читать и легко перепутать.","fix":"Используйте исключающие или параллельные шлюзы либо оставьте этот и внимательно проверьте условия."},"bpmnlint/no-overlapping-elements":{"title":"Элемент перекрывает другой или выходит за своего родителя","why":"Элементы, нарисованные друг на друге, скрывают друг друга.","fix":"Разведите элементы в стороны или разложите диаграмму заново."},"bpmnlint/single-blank-start-event":{"title":"Больше одного пустого стартового события","why":"Два пустых стартовых события значат два способа запустить один процесс, и различить их нечем.","fix":"Оставьте одно пустое стартовое событие, задайте остальным тип или разделите процесс."},"bpmnlint/single-event-definition":{"title":"Событие с несколькими определениями событий","why":"Событие с несколькими определениями — это множественное событие, которое поддерживают немногие движки и которого немногие читатели ждут.","fix":"Оставьте одно определение события или используйте по событию на каждое."},"bpmnlint/standard-size":{"title":"Элемент не стандартного размера","why":"Элементы стандартного размера делают диаграмму ровной.","fix":"Измените размер элемента на стандартный для его типа."},"bpmnlint/start-event-required":{"title":"Процесс или подпроцесс без стартового события","why":"Без стартового события процесс нельзя запустить.","fix":"Добавьте стартовое событие."},"bpmnlint/sub-process-blank-start-event":{"title":"Стартовое событие подпроцесса с типом","why":"Подпроцесс начинается, когда до него доходит поток, поэтому его стартовому событию нечего ждать.","fix":"Сделайте стартовое событие пустым."},"bpmnlint/superfluous-gateway":{"title":"Шлюз с одним входом и одним выходом","why":"Шлюз с одним входящим и одним исходящим потоком ничего не делает и только мешает.","fix":"Удалите шлюз и соедините его соседей."},"bpmnlint/superfluous-label":{"title":"Подпись на потоке, которому она не нужна","why":"Только потоки из решения, условные потоки и поток по умолчанию говорят подписью что-то новое; на любом другом она повторяет рисунок.","fix":"Удалите подпись."},"bpmnlint/superfluous-termination":{"title":"Событие завершения с завершением, которое ничего не завершает","why":"Событие завершения с завершением вне параллельного пути заканчивает так же, как обычное событие завершения, но намекает на что-то большее.","fix":"Используйте обычное событие завершения."},"compat/ad-hoc-sub-process":{"title":"Подпроцесс по требованию без действий","why":"В подпроцессе по требованию, в котором ничего нет, движку нечего выполнять, поэтому экземпляр никогда его не завершит.","fix":"Добавьте в подпроцесс по требованию хотя бы одно действие или удалите его."},"compat/agent-fromai-contract":{"title":"Ключ fromAi(), который не является простым именем в toolCall","why":"Агент заполняет параметр инструмента через fromAi(toolCall.name); ключ, записанный иначе, не находится, поэтому параметр остаётся пустым.","fix":"Запишите ключ как toolCall.name: одно имя с точками, без кавычек, скобок и арифметики."},"compat/agent-tool-documentation":{"title":"Инструмент ИИ-агента без документации","why":"Агент выбирает инструменты по их документации, поэтому инструмент без неё трудно выбрать и легко использовать неверно.","fix":"Опишите в документации, что делает инструмент."},"compat/agent-tool-output-key":{"title":"Инструмент ИИ-агента, который ничего ему не возвращает","why":"Агент видит только то, что инструмент кладёт в toolCallResult; без этого, с другим написанием или со вторым писателем ответ теряется.","fix":"Сопоставьте результат с toolCallResult, написанным именно так, один раз."},"compat/before-all-execution-listener":{"title":"Слушатель beforeAll вне элемента с несколькими экземплярами","why":"Слушатель исполнения beforeAll выполняется до создания экземпляров элемента с несколькими экземплярами, поэтому на любом другом элементе ему нечего предшествовать.","fix":"Перенесите слушатель на элемент с несколькими экземплярами или задайте ему другой тип события."},"compat/element-type":{"title":"Элемент, который не может выполнить эта версия движка","why":"Каждая версия Camunda поддерживает фиксированный набор элементов, а неизвестный ей элемент пропускается или отклоняется при развёртывании процесса.","fix":"Замените элемент тем, который версия поддерживает, или поднимите версию платформы диаграммы."},"compat/cancel-execution-listener":{"title":"Слушатель cancel на элементе, который нельзя отменить","why":"Слушатель исполнения cancel выполняется при завершении элемента, что возможно не для всех элементов, поэтому на остальных он никогда не срабатывает.","fix":"Используйте слушатель на элементе, который его поддерживает, или задайте ему другой тип события."},"compat/called-element":{"title":"Задача вызова без вызываемого процесса","why":"Задача вызова без идентификатора процесса или с неподходящим выражением падает, когда экземпляр до неё доходит.","fix":"Задайте идентификатор вызываемого процесса: статический или выражение FEEL."},"compat/collapsed-subprocess":{"title":"Свёрнутый подпроцесс","why":"Эта версия Camunda 8 не может выполнить подпроцесс, нарисованный свёрнутым на отдельной диаграмме, потому что ему не на чем прочитать её.","fix":"Разверните подпроцесс или поднимите версию платформы диаграммы."},"compat/connector-properties":{"title":"Коннектор со свойством, которого нет в этой версии","why":"Свойство коннектора, которое версия движка пока не поддерживает, игнорируется, поэтому коннектор работает не так, как настроен.","fix":"Уберите свойство или поднимите версию платформы диаграммы."},"compat/duplicate-execution-listener-headers":{"title":"Два заголовка слушателя с одинаковым ключом","why":"Слушатель, который читает заголовок по ключу, получает одно из двух значений, и какое именно не определено.","fix":"Задайте каждому заголовку слушателя свой ключ."},"compat/duplicate-execution-listeners":{"title":"Два одинаковых слушателя исполнения","why":"Два слушателя с одинаковым типом события и типом задания выполняют одно задание дважды.","fix":"Удалите повторяющийся слушатель."},"compat/duplicate-task-headers":{"title":"Два заголовка задачи с одинаковым ключом","why":"Воркер, который читает заголовок по ключу, получает одно из двух значений, и какое именно не определено.","fix":"Задайте каждому заголовку задачи свой ключ."},"compat/error-reference":{"title":"Событие ошибки без ошибки или кода ошибки","why":"Событие ошибки без указанной ошибки или с ошибкой без кода не ловит и не выбрасывает ничего, на что движок мог бы ответить.","fix":"Выберите ошибку для события и задайте ей код."},"compat/escalation-boundary-event-attached-to-ref":{"title":"Граничное событие эскалации на неверном элементе","why":"Эскалации возникают внутри подпроцесса или задачи вызова, поэтому граничное событие на любом другом элементе их не ловит.","fix":"Прикрепите граничное событие эскалации к подпроцессу или задаче вызова."},"compat/escalation-reference":{"title":"Событие эскалации без эскалации или кода","why":"Событие эскалации без указанной эскалации или с эскалацией без кода не ловит и не выбрасывает ничего, на что движок мог бы ответить.","fix":"Выберите эскалацию для события и задайте ей код эскалации."},"compat/event-based-gateway-target":{"title":"Задача приёма после шлюза по событиям","why":"Движок не принимает задачу приёма как цель шлюза по событиям, поэтому процесс отклоняется при развёртывании.","fix":"Вместо задачи приёма используйте промежуточное событие-ловушку сообщения."},"compat/executable-process":{"title":"Нет запускаемого процесса","why":"Camunda 8 разворачивает только процессы, помеченные как запускаемые, поэтому файлу без них нечего выполнять.","fix":"Пометьте процесс или один из пулов как запускаемый."},"compat/execution-listener":{"title":"Слушатель исполнения без типа события или типа задания","why":"Слушателю нужно знать, когда он выполняется и какой воркер его обрабатывает; без любого из этого движок его отклоняет.","fix":"Задайте тип события и тип задания слушателя."},"compat/feel-compatibility":{"title":"Функция FEEL, которой нет в этой версии движка","why":"Встроенная функция новее движка роняет выражение во время выполнения с инцидентом.","fix":"Используйте функцию, которая есть в этой версии, или поднимите версию платформы диаграммы."},"compat/feel":{"title":"Некорректное выражение FEEL","why":"Выражение, которое движок не может разобрать, падает, как только процесс до него доходит, и останавливает экземпляр инцидентом.","fix":"Исправьте выражение, названное в проблеме; редактор поля показывает, где оно сбивается."},"compat/history-time-to-live":{"title":"Процесс без времени жизни истории","why":"Без времени жизни движок хранит историю каждого завершённого экземпляра вечно, если она не задана для всего движка, и база растёт.","fix":"Задайте время жизни истории процесса, например P30D, или один раз для всего движка."},"compat/implementation":{"title":"Задача или событие, которому нечего выполнять","why":"Сервисная задача, задача бизнес-правил, задача со скриптом, задача отправки или событие сообщения без типа задания, решения, скрипта или сообщения ничего не делает, когда до него доходят.","fix":"Задайте, что выполняет элемент: тип задания, вызываемое решение, скрипт или имя сообщения."},"compat/inclusive-gateway":{"title":"Включающий шлюз с несколькими входами","why":"Camunda 8 до 8.6 может брать включающий шлюз только как разделяющий, поэтому шлюз, который ещё и объединяет, отклоняется.","fix":"Используйте один шлюз для разделения и другой для объединения или поднимите версию платформы диаграммы."},"compat/link-event":{"title":"События связи, которые не совпадают","why":"Событие отправки по связи переходит к событию-ловушке с тем же именем в той же области, поэтому имя, использованное дважды или не имеющее ловушки, ведёт в никуда.","fix":"Дайте каждому событию-ловушке уникальное имя и направите каждое отправляющее событие к одному из них."},"compat/loop-characteristics":{"title":"Несколько экземпляров без того, что нужно","why":"У элемента с несколькими экземплярами без входной коллекции или с выходной коллекцией без элемента выхода нет ни чего перебирать, ни чего собирать.","fix":"Задайте входную коллекцию и элемент выхода, если выходная коллекция есть."},"compat/io-mapping":{"title":"Неполное сопоставление входов или выходов","why":"Сопоставлению нужны и источник, и приёмник; без любого из них движок его отклоняет.","fix":"Заполните источник и приёмник каждого сопоставления входов и выходов."},"compat/message-reference":{"title":"Событие сообщения без сообщения или его имени","why":"Событие сообщения без указанного сообщения или с сообщением без имени никогда ни с чем не сопоставляется.","fix":"Выберите сообщение для события и задайте ему имя."},"compat/no-binding-type":{"title":"Тип привязки, которого нет в этой версии","why":"Привязка вызываемого процесса, решения или формы ко всему, кроме последней версии, требует Camunda 8.6 или новее; на более старой она игнорируется.","fix":"Привяжите к последней версии или поднимите версию платформы диаграммы."},"compat/no-business-id":{"title":"Идентификатор бизнес-процесса, которого нет в этой версии","why":"Идентификатор бизнес-процесса у задачи вызова требует Camunda 8.10 или новее; на более старой версии он игнорируется.","fix":"Уберите идентификатор бизнес-процесса или поднимите версию платформы диаграммы."},"compat/no-before-all-execution-listener":{"title":"Слушатель beforeAll, которого нет в этой версии","why":"Тип события beforeAll у слушателя исполнения требует Camunda 8.10 или новее.","fix":"Используйте другой тип события или поднимите версию платформы диаграммы."},"compat/no-candidate-users":{"title":"Кандидаты-пользователи, которых нет в этой версии","why":"Кандидаты-пользователи у задачи пользователя требуют Camunda 8.2 или новее; на более старой версии они игнорируются.","fix":"Уберите кандидатов-пользователей или поднимите версию платформы диаграммы."},"compat/no-cancel-execution-listener":{"title":"Слушатель cancel, которого нет в этой версии","why":"Тип события cancel у слушателя исполнения требует Camunda 8.10 или новее.","fix":"Используйте другой тип события или поднимите версию платформы диаграммы."},"compat/no-execution-listener-headers":{"title":"Заголовки слушателя, которых нет в этой версии","why":"Заголовки задач у слушателя исполнения эта версия Camunda 8 не поддерживает, и они игнорируются.","fix":"Уберите заголовки или поднимите версию платформы диаграммы."},"compat/no-execution-listeners":{"title":"Слушатели исполнения, которых нет в этой версии","why":"Слушатели исполнения требуют Camunda 8.6 или новее; на более старой версии они игнорируются.","fix":"Уберите слушателей или поднимите версию платформы диаграммы."},"compat/no-expression":{"title":"Выражение, которое эта версия не поддерживает","why":"Выражение FEEL в свойстве, которое версия движка читает только как фиксированное значение, берётся как текст и не вычисляется.","fix":"Запишите статическое значение или поднимите версию платформы диаграммы."},"compat/no-interrupting-event-subprocess":{"title":"Прерывающий подпроцесс по событию внутри подпроцесса по требованию","why":"Подпроцесс по событию внутри подпроцесса по требованию не может его прервать, поэтому прерывающее стартовое событие отклоняется.","fix":"Сделайте стартовое событие подпроцесса по событию непрерывающим."},"compat/no-job-priority-definition":{"title":"Приоритет задания, которого нет в этой версии","why":"Приоритет задания требует Camunda 8.10 или новее; на более старой версии он игнорируется.","fix":"Уберите приоритет задания или поднимите версию платформы диаграммы."},"compat/no-loop":{"title":"Цикл, который ничего не ждёт","why":"Цикл из одних задач и шлюзов, выполняющихся сразу, ничего не ждёт, поэтому экземпляр крутится в нём и не останавливается.","fix":"Добавьте в цикл элемент, который ждёт, например задачу пользователя или таймер, или задайте условие шлюза, которое выводит из него."},"compat/no-multiple-none-start-events":{"title":"Больше одного пустого стартового события","why":"Camunda 8 принимает только одно пустое стартовое событие в процессе, поэтому второе делает развёртывание неудачным.","fix":"Оставьте одно пустое стартовое событие, задайте остальным тип события или разделите процесс."},"compat/no-priority-definition":{"title":"Приоритет, которого нет в этой версии","why":"Приоритет у задачи пользователя требует Camunda 8.6 или новее; на более старой версии он игнорируется.","fix":"Уберите приоритет или поднимите версию платформы диаграммы."},"compat/no-propagate-all-parent-variables":{"title":"Распространение всех родительских переменных, которого нет в этой версии","why":"Отключение распространения родительских переменных задачи вызова требует Camunda 8.2 или новее.","fix":"Оставьте распространение включённым или поднимите версию платформы диаграммы."},"compat/no-signal-event-sub-process":{"title":"Подпроцесс по событию-сигналу, которого нет в этой версии","why":"Стартовое событие-сигнал в подпроцессе по событию требует более новой версии Camunda 8, чем указано в диаграмме.","fix":"Используйте другое стартовое событие или поднимите версию платформы диаграммы."},"compat/no-task-schedule":{"title":"Сроки задачи, которых нет в этой версии","why":"Срок выполнения или напоминания у задачи пользователя требует Camunda 8.2 или новее; на более старой версии он игнорируется.","fix":"Уберите даты или поднимите версию платформы диаграммы."},"compat/no-task-listeners":{"title":"Слушатели задач, которых нет в этой версии","why":"Слушатели задач у задачи пользователя требуют Camunda 8.8 или новее; на более старой версии они игнорируются.","fix":"Уберите слушателей задач или поднимите версию платформы диаграммы."},"compat/no-template":{"title":"Шаблон элемента, которого нет в этой версии","why":"Шаблоны элементов требуют Camunda 8.0 или новее; на более старой версии заданные ими свойства игнорируются.","fix":"Уберите шаблон или поднимите версию платформы диаграммы."},"compat/no-version-tag":{"title":"Тег версии, которого нет в этой версии","why":"Тег версии требует Camunda 8.6 или новее; на более старой версии он игнорируется.","fix":"Уберите тег версии или поднимите версию платформы диаграммы."},"compat/no-zeebe-properties":{"title":"Свойства zeebe, которых нет в этой версии","why":"Свои zeebe:properties требуют Camunda 8.1 или новее; на более старой версии они отбрасываются при развёртывании процесса.","fix":"Уберите свойства или поднимите версию платформы диаграммы."},"compat/no-zeebe-user-task":{"title":"Задача пользователя Camunda, которой нет в этой версии","why":"Задача пользователя, реализованная самой Camunda, требует Camunda 8.5 или новее.","fix":"Используйте задачу пользователя на воркере заданий или поднимите версию платформы диаграммы."},"compat/priority-definition":{"title":"Некорректный приоритет задачи пользователя","why":"Приоритет задачи пользователя должен быть целым числом от 0 до 100 или выражением; всё остальное отклоняется.","fix":"Запишите приоритет числом от 0 до 100 или выражением."},"compat/zeebe-user-task":{"title":"Задача пользователя на воркере заданий","why":"Задача пользователя, которую выполняет воркер заданий, — устаревший способ; начиная с этой версии поддерживается задача пользователя Camunda.","fix":"Переключите задачу пользователя на реализацию Camunda."},"compat/secrets":{"title":"Секрет, записанный в форме, которую движок больше не читает","why":"Ссылка на секрет как {{secrets.NAME}} или в старом синтаксисе коннекторов устарела и в более поздней версии отбрасывается.","fix":"Запишите секрет выражением FEEL: camunda.secrets.NAME."},"compat/sequence-flow-condition":{"title":"Условие на потоке, который не может его иметь","why":"Условными бывают только потоки из исключающего или включающего шлюза; на любом другом потоке условие отклоняется.","fix":"Уберите условие или нарисуйте шлюз перед потоком."},"compat/signal-reference":{"title":"Событие сигнала без сигнала или его имени","why":"Событие сигнала без указанного сигнала или с сигналом без имени никогда не сработает и не будет поймано.","fix":"Выберите сигнал для события и задайте ему имя."},"compat/start-event-form":{"title":"Форма стартового события, которую эта версия не может показать","why":"До Camunda 8.3 у стартового события нет формы, а начиная с 8.3 форме нужен идентификатор формы или подключённая существующая форма.","fix":"Задайте идентификатор или ключ формы стартового события или поднимите версию платформы диаграммы."},"compat/start-event-form-embedded":{"title":"Встроенная форма на стартовом событии","why":"Встроенные формы на стартовом событии устарели в этой версии и перестанут работать в более поздней.","fix":"Перенесите форму в файл .form и подключите его из стартового события."},"compat/subscription":{"title":"Сообщение без ключа сопоставления","why":"Сообщению, которого ждёт процесс, нужен ключ сопоставления, иначе движок не поймёт, для какого экземпляра оно.","fix":"Задайте ключ сопоставления подписки на сообщение, обычно выражением FEEL."},"compat/task-listener":{"title":"Слушатель задачи без типа события или типа задания","why":"Слушателю задачи нужно знать, когда он выполняется и какой воркер его обрабатывает; без любого из этого движок его отклоняет.","fix":"Задайте тип события и тип задания слушателя."},"compat/task-schedule":{"title":"Сроки задачи, которые не являются датой","why":"Срок выполнения и напоминания у задачи пользователя должны быть датой ISO 8601 или выражением, которое её даёт.","fix":"Запишите дату в ISO 8601 или используйте выражение."},"compat/timer":{"title":"Некорректный таймер","why":"Таймер с датой, длительностью или циклом, которые движок не может прочитать, падает при развёртывании процесса или при доходе до него.","fix":"Запишите таймер как дату, длительность или цикл ISO 8601 либо как выражение."},"compat/timer-past-date":{"title":"Стартовый таймер в прошлом","why":"Стартовое событие-таймер, у которого дата или начало цикла уже в прошлом, срабатывает сразу после развёртывания, а цикл дальше идёт от момента развёртывания.","fix":"Укажите дату в будущем или cron-выражение для запуска по фиксированному расписанию."},"compat/unresolvable-secret-reference":{"title":"Секрет, использованный так, что движок не может его разрешить","why":"Секрет можно прочитать только как выражение; записанный как обычная строка, в списке или в ветви if, он никогда не подставляется.","fix":"Используйте =camunda.secrets.NAME прямо как значение свойства."},"compat/user-task-definition":{"title":"Задача пользователя без формы","why":"Задача пользователя без формы открывается в Tasklist, и человеку нечего читать или заполнять.","fix":"Подключите форму к задаче пользователя или примите задачу без неё."},"compat/user-task-form":{"title":"Форма задачи пользователя, которая не заполнена","why":"Форме у задачи пользователя нужен идентификатор или подключённая форма в том виде, которого ждёт выбранная привязка; без неё задача открывается без формы.","fix":"Задайте идентификатор или ключ формы так, как говорит её привязка."},"compat/variable-name":{"title":"Некорректное имя переменной","why":"Имя, начинающееся с цифры или содержащее пробел или дефис, нельзя использовать в выражении FEEL, поэтому его больше не прочитать.","fix":"Используйте имя из букв, цифр и подчёркиваний, не начинающееся с цифры."},"compat/version-tag":{"title":"Пустой тег версии","why":"Заданный без значения тег версии или привязка к пустому тегу не дают движку ничего, по чему искать.","fix":"Задайте тегу версии значение или выберите другую привязку."},"compat/wait-for-completion":{"title":"Компенсация, которая не ждёт","why":"Событие отправки компенсации без ожидания завершения не поддерживается в Camunda 8, которая всегда ждёт.","fix":"Включите ожидание завершения для события компенсации."},"drawing/dangling-connection":{"title":"Связь без обоих концов","why":"Связь, которая начинается или заканчивается в ничем, нарисована, но ничего не соединяет, поэтому рисунок и процесс расходятся.","fix":"Переподключите оба конца связи к фигуре или удалите её."},"drawing/lost-connection":{"title":"Связь есть в файле, но её нет на холсте","why":"Файл описывает связь, которую редактор не нарисовал, поэтому она невидима и её нельзя выбрать.","fix":"Соедините элементы на холсте заново; лишняя связь отбрасывается при сохранении файла."},"drawing/containment":{"title":"Элемент за пределами своего контейнера","why":"Элемент, который принадлежит пулу, дорожке или подпроцессу, но нарисован за их границей, читается как принадлежащий чему-то другому.","fix":"Перетащите элемент обратно внутрь контейнера или увеличьте контейнер."},"drawing/overlap":{"title":"Фигуры лежат друг на друге","why":"Фигуры, нарисованные друг на друге, скрывают друг друга, а нижнюю нельзя выбрать.","fix":"Сдвиньте одну из фигур или разложите диаграмму заново."},"drawing/edge-through-node":{"title":"Связь проходит сквозь фигуру","why":"Связь, проведённая сквозь фигуру, которой она не касается, выглядит подключённой к этой фигуре.","fix":"Сдвиньте изгиб связи или фигуру, чтобы линия обходила её."},"drawing/edge-through-boundary":{"title":"Связь проходит сквозь граничное событие","why":"Связь, проведённая сквозь граничное событие, из которого она не выходит и в которое не входит, выглядит так, будто задачу покидает через это событие.","fix":"Сдвиньте граничное событие вдоль границы задачи подальше от места, где связь касается задачи."},"drawing/crossing":{"title":"Связи пересекаются","why":"Каждое пересечение — место, где глаз может пойти по неверной линии.","fix":"Сдвиньте фигуру, чтобы пересекалось меньше связей, или разложите диаграмму заново."},"drawing/detached-edge":{"title":"Связь не доходит до фигуры, к которой подключена","why":"Связь, которая обрывается до фигуры, выглядит незаконченной и не двигается вместе с фигурой.","fix":"Перетащите свободный конец связи на фигуру."},"drawing/boundary-off-host":{"title":"Граничное событие сошло со своего места","why":"Граничное событие не на границе задачи, к которой оно прикреплено, выглядит как отдельное событие.","fix":"Перетащите граничное событие обратно на границу задачи."},"drawing/label-adrift":{"title":"Подпись далеко от того, что называет","why":"Подпись, далёкая от своего элемента, читается как подпись чего-то более близкого.","fix":"Перетащите подпись рядом с её элементом."},"drawing/diagonal-edge":{"title":"Связь проведена не под прямым углом","why":"Диаграмма BPMN читается как горизонтальные и вертикальные линии; наклонная выглядит как ошибка.","fix":"Выпрямите отрезок или разложите диаграмму заново."},"drawing/label-overlap":{"title":"Подписи закрывают друг друга","why":"Перекрывающиеся подписи невозможно прочитать.","fix":"Сдвиньте одну из подписей в сторону."},"drawing/merged-edge":{"title":"Связи идут по одной линии","why":"Две связи, нарисованные друг на друге, читаются как одна, и читатель теряет одну из них.","fix":"Сдвиньте одну из связей на несколько пикселей в сторону или разложите диаграмму заново."},"drawing/note-adrift":{"title":"Аннотация далеко от того, что описывает","why":"Аннотацию, далёкую от своего элемента, трудно с ним связать.","fix":"Перетащите аннотацию рядом с элементом, который она описывает."},"drawing/semantic-drift":{"title":"Диаграмма значит другое","why":"Раскладка должна только двигать элементы и ничего больше не менять; элемент с другим родителем, источником или приёмником — это уже другой процесс.","fix":"Отмените изменение и сообщите о нём: раскладка не должна такого делать."},"drawing/backtrack":{"title":"Связь возвращается сама по себе","why":"Линия, которая проходит лишнее и возвращается обратно, читается как одна и скрывает свой изгиб.","fix":"Удалите лишний изгиб связи."},"drawing/edge-through-label":{"title":"Связь пересекает подпись","why":"Линия через подпись затрудняет чтение и того, и другого.","fix":"Сдвиньте подпись с линии."},"drawing/edge-along-shape":{"title":"Связь идёт вдоль границы фигуры","why":"Линия, лежащая на границе чужой фигуры, выглядит её частью.","fix":"Сдвиньте участок связи на несколько пикселей от фигуры."},"drawing/detour":{"title":"Связь идёт в обход","why":"Связь длиннее, чем вдвое больше расстояния, которое она проходит, заставляет читателя искать её конец.","fix":"Сдвиньте фигуры ближе или проведите связь по более короткому пути."},"drawing/jog":{"title":"Связь зря отходит в сторону","why":"Небольшой уход в сторону между двумя параллельными участками, когда ничто не мешает, выглядит как промах руки.","fix":"Удалите два изгиба этого ухода."},"flow/deadlock":{"title":"Процесс может застрять","why":"Токен может дойти до точки, откуда его ничто не сдвинет, поэтому экземпляр никогда не закончится и навсегда останется в движке.","fix":"Пройдите по пути из проблемы и дайте застрявшему объединению выход, например объединяя только то, что было разделено."},"flow/no-synchronization":{"title":"Часть процесса может выполниться дважды","why":"Два пути, ведущие к одному шагу без объединяющего шлюза, запускают его по разу, и шаг выполняется дважды.","fix":"Объедините пути шлюзом подходящего вида перед шагом."},"flow/dead-element":{"title":"Элемент никогда не выполнится","why":"Ни один путь от начала не ведёт к элементу, поэтому всё, что он делает, — лишний груз в диаграмме.","fix":"Соедините его с путём, который может до него дойти, или удалите его."},"flow/never-finishes":{"title":"Процесс может не закончиться никогда","why":"Цикл без выхода держит свой экземпляр живым, пока его не отменят вручную.","fix":"Дайте циклу выход: условие, которое его заканчивает, или поток, который из него выходит."},"flow/too-complex":{"title":"Проанализирована только часть процесса","why":"У процесса слишком много состояний, чтобы проверить их все, поэтому сказанное проверкой верно только для достигнутой части.","fix":"Разделите процесс на подпроцессы или задачи вызова, чтобы каждый можно было проверить целиком."},"flow/no-way-out":{"title":"У решения нет выхода для некоторых значений","why":"Когда ни одно условие шлюза не истинно и нет потока по умолчанию, экземпляр останавливается там с инцидентом.","fix":"Добавьте поток по умолчанию или условие для значений из проблемы."},"flow/overlap":{"title":"Два выхода из решения могут быть истинны одновременно","why":"Когда два условия исключающего шлюза могут быть истинны одновременно, движок берёт то, которое проверяет первым, а это зависит от порядка в файле.","fix":"Сделайте условия взаимоисключающими или превратите одно из них в поток по умолчанию."},"flow/no-default":{"title":"У решения может не быть выхода","why":"Шлюз с условиями и без потока по умолчанию останавливает экземпляр инцидентом, когда ни одно из них не истинно.","fix":"Отметьте один исходящий поток как поток по умолчанию."},"flow/lookalike":{"title":"Две переменные похожи на одну","why":"Два имени переменных, отличающиеся буквой или её регистром, обычно одно имя, написанное дважды, и одно из них никогда не хранит значение другого.","fix":"Используйте одно написание везде или сделайте так, чтобы имена явно отличались."},"table/rule-overlap":{"title":"Два правила подходят под один вход","why":"Когда политика попаданий ждёт одного совпадения, два правила под одним входом заставляют решение падать или зависеть от их порядка.","fix":"Сузите одно из двух правил, чтобы они больше не подходили под один вход, или смените политику попаданий."},"table/rule-gap":{"title":"Ни одно правило не подходит под некоторый вход","why":"Вход, под который не подходит ни одно правило, не даёт решению результата, и запросивший его процесс останавливается.","fix":"Добавьте правило для входа из проблемы или универсальное правило в конце."},"table/table-unread":{"title":"Таблицу решений не удалось проверить","why":"Таблица с выражением, которое проверка не может прочитать, остаётся вне неё, поэтому её проблемы не находятся.","fix":"Упростите выражение в ячейке из проблемы или примите, что эта таблица не проверяется."},"form/key-clash":{"title":"Два поля пишут одну переменную","why":"Tasklist и редактор форм отказываются открывать форму, в которой два поля или поле и группа используют один ключ.","fix":"Задайте каждому полю свой ключ."},"form/no-key":{"title":"Поле не пишет переменную","why":"Поле без ключа показывается пользователю, но введённое в него не передаётся процессу.","fix":"Задайте полю ключ — имя переменной процесса, которую оно заполняет."},"form/repeated-option":{"title":"Список вариантов повторяет значение","why":"Два варианта с одинаковым значением отправляют одно и то же, хотя пользователь различает их.","fix":"Задайте каждому варианту своё значение."},"form/no-label":{"title":"У поля нет подписи","why":"Поле ввода без подписи заставляет пользователя гадать, для чего оно.","fix":"Задайте полю подпись."},"code/missing-implementation":{"title":"Шаг не выполняется ничем в коде","why":"Сервисная задача, задача отправки или слушатель с типом задания, темой, классом или бином, который никто не реализует, ждёт воркера, которого нет.","fix":"Напишите воркер, делегат или бин либо исправьте имя на диаграмме."},"code/never-thrown":{"title":"Ошибку, которую ловит шаг, не выбрасывает ничто в коде","why":"Граничное событие или событие ошибки ловит код, который не выбрасывает ни один BpmnError или команда error в проекте, поэтому оно никогда не срабатывает.","fix":"Выбрасывайте код ошибки в воркере или исправьте код на событии."},"code/variable-typo":{"title":"Переменная читается, но задаётся только похожая","why":"Чтение имени, которое никогда не записывается, когда рядом есть отличающееся на букву, почти всегда опечатка, и чтение ничего не даёт.","fix":"Используйте то написание, которое задаётся."},"code/worker-fetch":{"title":"Воркер читает переменную, которую не получает","why":"Воркеру Camunda 8 передаются только те переменные, которые он запрашивает, поэтому имя, которое его код читает, но список получения не содержит, во время выполнения равно null, как и имя, записанное в списке получения под другим написанием.","fix":"Добавьте переменную в fetchVariables воркера или используйте имя, которое он получает."},"code/writer-unread":{"title":"Воркер задаёт переменную, которую не читает ни один шаг после","why":"Переменная, которую воркер пишет и которую ничто ниже не читает, пишется впустую; часто имя не то, которое ищет следующий шаг.","fix":"Прочитайте её в более позднем шаге или уберите из воркера."},"code/lost-update":{"title":"Каждый параллельный экземпляр пишет одну и ту же коллекцию результатов","why":"Параллельный шаг с несколькими экземплярами, задающий выходную коллекцию без элемента выхода, заставляет каждый экземпляр писать одну и ту же коллекцию, поэтому остаётся только завершившийся последним.","fix":"Задайте элемент выхода или собирайте результаты в одном экземпляре после объединения."},"code/late-read":{"title":"Воркер читает переменную, которую не задаёт ни один шаг до него","why":"Воркеру передаются только те переменные, которые процесс задал до него, поэтому имя, которое он читает, но никто до него не задавал, во время выполнения равно null.","fix":"Задайте переменную в более раннем шаге или уберите её из воркера."},"code/near-name":{"title":"Тип задания, тема, бин, сообщение или код ошибки отличается от кода на одну букву","why":"Имя, не совпадающее с именем в коде, оставляет шаг без того, что его выполняет, а имя, отличающееся только регистром, — та же ловушка с более тихой ошибкой.","fix":"Используйте имя, которое есть в коде, или переименуйте воркер в то, которое использует диаграмма."},"code/mapping-order":{"title":"Строка сопоставления читает значение, которое должна была задать более ранняя строка","why":"Движок вычисляет источник каждой строки сопоставления, прежде чем записать любой приёмник, поэтому более поздняя строка, читающая то, что задаёт более ранняя, получает null - camunda#11789.","fix":"Перенесите значение в более раннюю строку или вычисляйте оба значения из одного источника."},"code/implicit-job-type":{"title":"Воркер заданий берёт тип задания из имени метода","why":"@JobWorker без типа отвечает под именем своего метода, поэтому переименование метода меняет контракт с диаграммой, ни о чём не сообщая.","fix":"Задайте тип в аннотации, чтобы метод можно было свободно переименовывать."},"code/no-worker":{"title":"Тип задания не обрабатывает ни один воркер","why":"Сервисная задача Camunda 8 создаёт задание, которое ждёт воркера с его типом; без такого экземпляр ждёт вечно.","fix":"Напишите воркер для этого типа задания или исправьте тип задания на диаграмме."},"code/no-topic-worker":{"title":"На тему не подписан ни один воркер внешних заданий","why":"Внешнее задание Camunda 7 ждёт клиента, подписанного на его тему; без такого экземпляр ждёт вечно.","fix":"Подпишите воркер на тему или исправьте тему на диаграмме."},"code/class-missing":{"title":"Класса, названного на диаграмме, нет в проекте","why":"Класс делегата или слушателя, который движок не может загрузить, роняет экземпляр на этом шаге.","fix":"Добавьте класс или исправьте имя класса на диаграмме."},"code/bean-missing":{"title":"Бина Spring с именем, которое использует диаграмма, нет","why":"Выражение делегата, называющее несуществующий бин, роняет экземпляр на этом шаге.","fix":"Назовите бин, который использует диаграмма, или исправьте выражение."},"code/unknown-process":{"title":"Задача вызова вызывает процесс, который не определён ни на одной диаграмме","why":"Вызов неразвёрнутого процесса роняет экземпляр на самом вызове.","fix":"Добавьте вызываемый процесс в проект или исправьте идентификатор вызова."},"code/unknown-decision":{"title":"Задача бизнес-правил вызывает решение, которое не определено ни в одном файле","why":"Вызов неразвёрнутого решения роняет экземпляр на задаче.","fix":"Добавьте решение в проект или исправьте его идентификатор в задаче."},"code/unknown-form":{"title":"Задача пользователя показывает форму, которую не определяет ни один файл","why":"Задача пользователя со ссылкой на неразвёрнутую форму открывается без формы.","fix":"Добавьте файл .form или исправьте идентификатор формы в задаче."},"code/unknown-embedded-form":{"title":"Задача пользователя показывает встроенную форму, которой нет на диаграмме","why":"Задача пользователя со ссылкой на встроенную форму, которой нет на диаграмме, открывается без формы.","fix":"Добавьте форму на диаграмму или исправьте ссылку."},"code/unused-worker":{"title":"Воркер для типа задания, который не использует ни одна диаграмма","why":"Воркер, который никто не вызывает, это код, который приходится хранить впустую, и он скрывает, что диаграмма потеряла свой шаг.","fix":"Удалите воркер или добавьте шаг, который использует его тип задания."},"code/unused-subscription":{"title":"Подписка на тему, которую не использует ни одна диаграмма","why":"Подписка, которую никто не кормит, это код, который приходится хранить впустую, и она скрывает, что диаграмма потеряла свой шаг.","fix":"Удалите подписку или добавьте шаг, который использует её тему."},"code/variable-field":{"title":"Шаг читает поле, которого у переменной нет","why":"Поле, которого нет у типа переменной, во время выполнения равно null, а частая причина — опечатка в имени поля. Проверяется только переменная, тип которой известен из кода, который её задаёт; поле типа, который проект не объявляет, никогда не выводится.","fix":"Используйте поле, которое есть у типа, или исправьте имя; поле, которое код добавит позже, названо в его классе."},"code/variable-unknown":{"title":"Шаг читает переменную, которую никто не задаёт","why":"Имя, которое не задаёт ни один шаг диаграммы или кода и с которым процесс не объявлен запускаться в variables.inputs, равно null, если что-то извне не запускает процесс с ним.","fix":"Задайте переменную на более раннем шаге, объявите её в variables.inputs в penstock.yaml или исправьте имя."},"convention/id-from-name":{"title":"Идентификаторы следуют за именами","why":"Идентификаторы, читающиеся как имена, делают различия, журналы, тест-кейсы и код воркеров читаемыми и остаются верными при переименовании шага.","fix":"Задайте `conventions.ids.fromName: true` в `penstock.yaml`; `conventions.ids.pattern` задаёт вид идентификатора, по умолчанию `{Type}_{Name}`."},"convention/defaults":{"title":"Значения по умолчанию для новых элементов","why":"Атрибуты, нужные каждой сервисной задаче или каждому входу данных в проекте и заданные один раз, не забываются ни на одном из них.","fix":"Задайте их в `penstock.yaml` в разделе `conventions.defaults` с ключом по типу BPMN, например `bpmn:ServiceTask`."},"compat":{"badBoundaryHost":"Элемент «{subject}» прикреплён к тому, у чего не может быть такого граничного события","callsNoDecision":"Элемент «{subject}» не вызывает решение и не имеет типа задания","callsNoProcess":"Элемент «{subject}» не вызывает процесс","cannotUseExpression":"Элемент «{subject}» не может использовать выражение в свойстве {property}","conditionNotAllowedHere":"У элемента «{subject}» есть условие, но условия бывают только у потоков из исключающего или включающего шлюза","deprecatedSecret":"Элемент «{subject}» записывает секрет в устаревшей форме","duplicateLinkName":"Два события-ловушки связи используют одно имя","element":"элемент","elementNeedsVersion":"{elements} требуют Camunda {allowed} или новее{targets}","expressionNeeds":"Элемент «{subject}» использует выражение в свойстве {property}, для этого {needs}","fallback":"{subject}: {message}","formWithNoId":"У элемента «{subject}» есть форма без идентификатора","hasNoForm":"У элемента «{subject}» нет формы","hasNoJobType":"У элемента «{subject}» нет типа задания","hasNoScript":"У элемента «{subject}» нет скрипта и типа задания","here":"здесь","historyTimeToLiveMissing":"Нет времени жизни истории","invalidAgentSetting":"У элемента «{subject}» некорректная настройка ИИ-агента","invalidFeelExpression":"У элемента «{subject}» некорректное выражение FEEL","isCollapsed":"Элемент «{subject}» свёрнут, а эта версия Camunda требует, чтобы он был развёрнут","isJobWorkerUserTask":"Элемент «{subject}» — задача пользователя на воркере заданий, а поддерживается задача пользователя Camunda","joinOr":"{list} или {last}","loopThatNeverWaits":"Элемент «{subject}» входит в цикл, который ничего не ждёт","messageWithoutCorrelationKey":"Элемент «{subject}» ждёт сообщения без ключа сопоставления","missingExtension":"У элемента «{subject}» нет настроек расширения {required}","missingInputCollection":"Элемент «{subject}» выполняется в нескольких экземплярах, но входной коллекции у него нет","missingProperty":"У элемента «{subject}» нет таких настроек: {list}","moreThanOneBlankStart":"Пустых стартовых событий больше одного, а Camunda разрешает одно в процессе","moreThanOneElement":"В одной области больше одного {kind}, а разрешён только один","needs":"нужен Camunda {allowed} или новее{targets}","needsConditionOrDefault":"Поток «{subject}» должен иметь условие или быть потоком по умолчанию своего шлюза","needsPropertyBefore":"Элементу «{subject}» нужны настройки {list} на версиях до Camunda {allowed}{targets}","noActivityInside":"Внутри элемента «{subject}» нет действий","notExecutable":"Элемент «{subject}» не помечен как запускаемый","receiveTaskAfterGateway":"В Camunda 8 за шлюзом по событиям не может идти задача приёма; используйте событие-ловушку сообщения","targets":" - эта диаграмма настроена на {version}","theKind":"{kind}","thisElement":"Этот элемент","unreadableVariableName":"Элемент «{subject}» использует имя переменной, которое движок не может прочитать","unresolvableSecret":"Элемент «{subject}» ссылается на секрет так, что движок не может его разрешить","unsupportedFeelFunction":"Элемент «{subject}» использует функцию FEEL, которой нет в Camunda {version}","usesProperty":{"a":"Элемент «{subject}» использует свойство {property}, для этого {needs}","an":"Элемент «{subject}» использует свойство {property}, для этого {needs}"},"usesExtension":{"a":"Элемент «{subject}» использует расширение {extension}, для этого {needs}","an":"Элемент «{subject}» использует расширение {extension}, для этого {needs}"},"propertyValueNeeds":{"a":"У элемента «{subject}» значение свойства {property}, для которого {needs}","an":"У элемента «{subject}» значение свойства {property}, для которого {needs}"},"propertyValueNotAllowed":{"a":"У элемента «{subject}» значение свойства {property}, которое здесь не допускается","an":"У элемента «{subject}» значение свойства {property}, которое здесь не допускается"},"deprecatedProperty":{"a":"Элемент «{subject}» использует свойство {property}, а это свойство устарело","an":"Элемент «{subject}» использует свойство {property}, а это свойство устарело"},"cannotHaveProperty":{"a":"У элемента «{subject}» не может быть свойство {property}","an":"У элемента «{subject}» не может быть свойство {property}"},"cannotHaveExtension":{"a":"У элемента «{subject}» не может быть расширение {extension}","an":"У элемента «{subject}» не может быть расширение {extension}"},"refersToNoMessage":"Элемент «{subject}» не ссылается на сообщение","refersToNoError":"Элемент «{subject}» не ссылается на ошибку","refersToNoSignal":"Элемент «{subject}» не ссылается на сигнал","refersToNoEscalation":"Элемент «{subject}» не ссылается на эскалацию","word":{"adHoc":"ad-hoc","agentDefinition":"определение агента","assignmentDefinition":"определение назначения","bindingType":"тип привязки","body":"содержимое","businessId":"идентификатор бизнес-процесса","calledDecision":"вызываемое решение","calledElement":"вызываемый элемент","cancelRemainingInstances":"отмена оставшихся экземпляров","candidateUsers":"кандидаты-пользователи","completionCondition":"условие завершения","conditionExpression":"выражение условия","consumeUnmatchedEvents":"обработка несовпавших событий","correlationKey":"ключ сопоставления","decisionId":"идентификатор решения","deduplicationModeManualFlag":"флаг ручного режима дедупликации","dueDate":"срок выполнения","errorCode":"код ошибки","errorRef":"ссылка на ошибку","escalationCode":"код эскалации","escalationRef":"ссылка на эскалацию","eventType":"тип события","executionListeners":"слушатели исполнения","expression":"выражение","externalReference":"внешняя ссылка","followUpDate":"срок напоминания","formDefinition":"определение формы","formId":"идентификатор формы","formKey":"ключ формы","headers":"заголовки","historyTimeToLive":"время жизни истории","incoming":"входящие","inputCollection":"входная коллекция","inputElement":"входной элемент","ioMapping":"сопоставление входов и выходов","isExecutable":"запускаемый","isInterrupting":"прерывающий","jobPriorityDefinition":"определение приоритета задания","loopCharacteristics":"характеристики цикла","messageRef":"ссылка на сообщение","messageTtl":"время жизни сообщения","modelerTemplate":"шаблон modeler","name":"имя","outputCollection":"выходная коллекция","outputElement":"выходной элемент","priority":"приоритет","priorityDefinition":"определение приоритета","processId":"идентификатор процесса","propagateAllParentVariables":"передавать все переменные родительского процесса","properties":"свойства","resultVariable":"переменная результата","script":"скрипт","signalRef":"ссылка на сигнал","source":"источник","subscription":"подписка","target":"цель","taskDefinition":"определение задачи","taskHeaders":"заголовки задачи","taskListeners":"слушатели задачи","taskSchedule":"расписание задачи","timeCycle":"цикл времени","timeDate":"дата и время","timeDuration":"длительность времени","type":"тип","userTask":"задача пользователя","userTaskForm":"форма задачи пользователя","value":"значение","versionTag":"тег версии","waitForCompletion":"ожидание завершения"}},"defects":{"boundaryOffHost":"{event} вне {host}","containment":"{id} {relation} «{box}»","crossing":"[{aType}|{bType}] {a} ({aFrom}->{aTo}) x {b} ({bFrom}->{bTo})","detour":"[{type}] {id} идёт {run}px на расстоянии {apart}px","edgeAlongShape":"{connection} идёт вдоль {shape}","edgeOverLabel":"{connection} поверх подписи {owner}","edgeThroughBoundary":"{connection} проходит через {event}, прикреплённое к {host}","edgeThroughNode":"{connection} проходит через {shape}","insideForeign":"внутри","labelFromLine":"подпись {id} на {gap}px от своей линии","labelFromShape":"подпись {id} на {gap}px от своей фигуры","labelOverLabel":"подпись {owner} поверх подписи {other}","labelOverShape":"подпись {owner} поверх {shape}","mergedEdge":"[{aType}|{bType}|{axis}] {a} ({aFrom}->{aTo}) с {b} ({bFrom}->{bTo}) на {run}px","noteAdrift":"{id} ({from}->{to}) на {span}px","outsideIts":"вне","overlap":"{a} <-> {b}","semanticDrift":"{id} было {was}, теперь {now}","straddles":"пересекает границу","typedWire":"[{type}] {id} ({from}->{to})","wire":"{id} ({from}->{to})"},"drawing":{"listSeparator":", ","noProblemsFound":"Проблем не найдено.","readability":"читаемость: {number}","rulesCouldNotRun":"Правила bpmnlint выполнить не удалось.","theConnection":"связь от {from} к {to}","theElement":"элемент «{type}»","errors":{"one":"{count} ошибка","other":"{count} ошибки","few":"{count} ошибки","many":"{count} ошибок"},"warnings":{"one":"{count} предупреждение","other":"{count} предупреждения","few":"{count} предупреждения","many":"{count} предупреждений"}},"flow":{"above":"выше","anActivity":"действие","and":" и ","arrive":"приходит","arrives":"приходит","atLeast":"не меньше","atMost":"не больше","below":"ниже","bothConditionsHold":"Когда {shared}, истинны и {first}, и {second} у {gateway}; движок берёт то, которое проверяет первым.","comma":", ","exclusive":" (исключительно)","hasAnyValue":"{variable} имеет любое значение","isAnythingBut":"{variable} имеет любое значение, кроме {values}","isBetween":"{variable} находится между {lo} и {hi}{exclusive}","isBound":"{variable} {side} {bound}","isSomeOtherValue":"{variable} имеет другое значение","isValue":"{variable} равно {bound}","leftThroughBoundary":" Запуск покинул {host} через его граничное событие{event} и больше не вернулся.","letterCaseOnly":"только регистр букв","lookalikeNames":"«{first}» и «{second}» используются в этом процессе и отличаются {difference}: одно из них, скорее всего, опечатка и никогда не будет хранить значение другого.","neverRuns":"{node} никогда не выполняется: {cause}.","noDefaultFlow":"У {gateway} нет потока по умолчанию. Если ни одно его условие не истинно, процесс останавливается там с инцидентом.","noPathReachesIt":"ни один путь от стартового события до него не ведёт","noPathToAnEnd":"Как только процесс доходит до {nodes}, ни один путь не ведёт к концу: он может только ходить по кругу.","noWayOut":"У {gateway} нет потока, когда {gaps}, и нет потока по умолчанию: процесс останавливается там с инцидентом.","nodeBefore":"{node} перед «{next}»","nothingLeadsToIt":"ничего к нему не ведёт","oneCharacter":"одна буква","orWhen":", или когда ","sentDownAnotherBranch":" {turn} отправил этот запуск по другой ветви.","theBranchThrough":"ветвь через {node}","theFlowTo":"поток в {target}","theNextStep":"следующий шаг","theNode":"{node}","tooManyStates":"У процесса больше {states} достижимых состояний; проблемы покрывают только исследованную часть.","twoBranchesAtOnce":"Две ветви, идущие одновременно, обе ведут к {node}, и он выполняется дважды. Сначала объедините их параллельным шлюзом.","twoTokensAtOnce":"Два токена могут прийти к {node} одновременно, и он выполнится дважды. Параллельному разделению обычно нужен параллельный шлюз объединения, а не исключающий.","waitsAndCannotContinue":"{who} ждёт и не может продолжить.","waitsFor":"{who} ждёт {missing}, который так и не {arrives}."},"form":{"keyClash":"{fields} {all} пишут {variable}. Такая форма не открывается: Tasklist и редактор форм её отклоняют.","keyClashGroup":"{field} пишет {variable}, которую {group} тоже использует для своих полей. Такая форма не открывается: Tasklist и редактор форм её отклоняют.","noKey":"у {field} нет ключа, поэтому введённое пользователем не передаётся процессу.","noLabel":"У элемента «{type}», который записывает {variable}, нет подписи, поэтому пользователь видит поле без объяснения, для чего оно.","repeatedOption":"{field} предлагает значение {values} больше одного раза, поэтому два различимых для пользователя варианта отправляют одно и то же.","unnamedField":"поле «{type}»{key}{id}"},"lint":{"couldNotRun":"Правило выполнить не удалось: {message}","decidesNothing":"У элемента «{what}» один вход и один выход, поэтому шлюз ничего не решает","discouragedGateway":"Элемент «{what}» — шлюз того вида, который не рекомендуют","endsWithoutEndEvent":"Элемент «{what}» заканчивает поток без события завершения","hasNoEndEvent":"У элемента «{what}» нет события завершения","hasNoName":"У элемента «{what}» нет имени","hasNoShape":"Элемент «{what}» не нарисован на диаграмме","hasNoStartEvent":"У элемента «{what}» нет стартового события","itsContainer":"Элемент «{what}» лежит за пределами {parent}","itsLane":"его дорожки","itsPool":"его пула","itsShape":"фигуры, к которой он принадлежит","itsSubProcess":"его подпроцесса","joinedWithoutGateway":"В элемент «{what}» без шлюза сходятся несколько потоков","joinsAndSplits":"Элемент «{what}» и объединяет, и разделяет поток, и это читается как два шлюза","linkEvent":"«{what}»: {message}","lowercaseLink":"связь ","moreThanOneBlankStart":"У элемента «{what}» больше одного пустого стартового события","needsConditionOrDefault":"Потоку «{what}» нужно условие, либо он должен быть потоком по умолчанию","notConnected":"Элемент «{what}» ни с чем не соединён","overlapsAnotherShape":"Элемент «{what}» перекрывает другую фигуру","splitsWithoutGateway":"Элемент «{what}» разделяет поток без шлюза","startsWithoutStartEvent":"Элемент «{what}» начинает поток без стартового события","theElement":"{type}","thisElement":"Этот элемент","twoIdenticalFlows":"У элемента «{what}» два одинаковых потока","unneededTermination":"Элемент «{what}» завершает процесс завершением, которое ему не нужно","conditionalEventNoCondition":"У условного события нет условия","eventBasedGatewayNeedsTwo":"У шлюза по событиям должно быть хотя бы два исходящих потока управления","flowOutOfEventBasedGatewayConditional":"Поток управления из шлюза по событиям не может иметь условие","typedStartEventNoDefinition":"У стартового события-триггера нет определения события","eventHasSeveralDefinitions":"У события несколько определений события","startEventMustBeBlank":"Стартовое событие подпроцесса должно быть пустым","sequenceFlowSuperfluousLabel":"у потока управления есть лишняя подпись","startEventInAdHoc":"В подпроцессе по требованию не может быть стартового события","endEventInAdHoc":"В подпроцессе по требованию не может быть события завершения","nonStandardWidth":"у элемента нестандартная ширина; ожидается {width}","nonStandardHeight":"у элемента нестандартная высота; ожидается {height}","nonStandardSize":"у элемента нестандартный размер; ожидается {width}x{height}"},"table":{"aDecision":"решение","and":" и ","differentResults":" и дают разные результаты","input":"вход {number}","orWhen":"; или когда ","ruleGap":"В «{decision}» ни одно правило не подходит, когда {cases}, поэтому решение там ничего не возвращает.","ruleOverlap":"В «{decision}» правила {first} и {second} подходят одновременно, когда {when}{different}; при политике попаданий {policy} это ошибка во время выполнения.","someOtherValue":"другое значение","unread":"«{decision}» использует в правилах выражения сложнее сравнений, диапазонов и списков, поэтому его правила не сравнивались.","whenIs":"«{label}» равно {value}"},"web":{"detailWithPath":"{detail} Путь: {path}","flowAnalysisHint":"Дедлоки, ветви, которые выполняются дважды, и шаги, которые не выполняются. Входит в Penstock Pro.","migrateToCamunda8":"Перейти на Camunda 8","nothingToConvert":"Конвертировать нечего: это не диаграмма Camunda 7.","path":"Путь: {path}","readability":"Читаемость ({number})","rulesCouldNotRun":"Правила bpmnlint выполнить не удалось: {failure}. Правилам из плагина bpmnlint нужен lint.clientBundlePath в penstock.yaml.","flowAnalysisFound":{"one":"Анализ потоков нашёл 1 проблему в том, как работает этот процесс","other":"Анализ потоков нашёл {count} проблемы в том, как работает этот процесс","few":"Анализ потоков нашёл {count} проблемы в том, как работает этот процесс","many":"Анализ потоков нашёл {count} проблем в том, как работает этот процесс"}},"workers":{"aWorkerIsWorking":"воркер работает над своими задачами","engineAnswered":"Движок ответил {status}","noJobStatistics":"Движок не сообщает статистику по заданиям, хотя начиная с Camunda 8.9 сообщает","noJobs":"заданий за последние 24 часа нет","noOpenTasks":"открытых задач нет","nobodyTookThem":"{jobs} за последние 24 часа, и ни один воркер не взял ни одного","refusedTheQuestion":"Движок отклонил запрос ({status}): учётные данные профиля могут не разрешать чтение заданий","tasksWait":"задачи ждут, и ни один воркер не заблокировал ни одну","tookItsJobs":"{workers} взял свои задания за последние 24 часа","workerCount":{"one":"{count} воркер","other":"{count} воркера","few":"{count} воркера","many":"{count} воркеров"},"jobCount":{"one":"{count} задание","other":"{count} задания","few":"{count} задания","many":"{count} заданий"}},"theKindOf":"элемент «{kind}»","engine/foreign-extension":{"title":"Расширение другого движка","why":"Flowable и Activiti игнорируют атрибуты и элементы пространств имён Camunda, Zeebe, Operaton и друг друга, поэтому то, что они задают, молча теряется при выполнении.","fix":"Замените его расширением того движка, для которого написана диаграмма, или удалите."},"engine/unknown-attribute":{"title":"Атрибут, которого движок не знает","why":"Атрибут в собственном пространстве имён движка, который движок не читает, обычно опечатка и ни на что не влияет.","fix":"Исправьте имя атрибута или удалите его."},"engine/attribute-not-allowed":{"title":"Атрибут на элементе не того вида","why":"Атрибут движка читается только на тех элементах, для которых он определён, поэтому на любом другом элементе он ни на что не влияет.","fix":"Перенесите атрибут на элемент, который его принимает, или удалите."},"engine/unsupported-element":{"title":"Элемент, который движок не поддерживает","why":"Элемент, который Flowable или Activiti не умеет выполнять, ломает развёртывание или никогда не срабатывает.","fix":"Замените элемент на тот, который движок поддерживает."},"engine/service-task-implementation":{"title":"Сервисная задача, которой нечего выполнять","why":"У сервисной задачи без класса, выражения, delegate-выражения или типа движку нечего вызывать, поэтому развёртывание отклоняется.","fix":"Задайте для сервисной задачи одно из: class, expression, delegateExpression или type."},"engine/script-format":{"title":"Скриптовая задача без формата скрипта","why":"Движок не угадывает язык скрипта, поэтому скриптовая задача без scriptFormat не может выполниться.","fix":"Задайте формат скрипта задачи, например groovy или javascript."},"engine/feel-expression":{"title":"Выражение FEEL в диаграмме Flowable или Activiti","why":"Flowable и Activiti вычисляют выражения JUEL в виде ${...}; выражение, начинающееся с =, это FEEL, который они не читают.","fix":"Запишите выражение на JUEL, как ${...}."},"engineCheck":{"foreignExtension":"{subject} использует {names} из {owner}, которые {engine} не читает, поэтому заданное теряется при выполнении","unknownAttribute":"У {subject} есть атрибут {name}, которого {engine} не знает","attributeNotAllowed":"У {subject} есть атрибут {name}, который движок читает только на элементах других видов","unsupportedElement":"{subject} это элемент, который {engine} не поддерживает","noImplementation":"У {subject} нечего выполнять: нет ни класса, ни выражения, ни delegate-выражения, ни типа","noScriptFormat":"У {subject} не задан формат скрипта, поэтому движок не может определить язык скрипта","feelExpression":"{subject} использует выражение FEEL, которое {engine} не читает; запишите его на JUEL как ${...}"}},"element":{"kind":{"adHocSubProcess":{"one":"подпроцесс по требованию","other":"подпроцесса по требованию","few":"подпроцесса по требованию","many":"подпроцессов по требованию"},"association":{"one":"ассоциация","other":"ассоциации","few":"ассоциации","many":"ассоциаций"},"boundaryEvent":{"one":"граничное событие","other":"граничных события","few":"граничных события","many":"граничных событий"},"businessRuleTask":{"one":"задача бизнес-правил","other":"задачи бизнес-правил","few":"задачи бизнес-правил","many":"задач бизнес-правил"},"callActivity":{"one":"задача вызова","other":"задачи вызова","few":"задачи вызова","many":"задач вызова"},"complexGateway":{"one":"составной шлюз","other":"составных шлюза","few":"составных шлюза","many":"составных шлюзов"},"dataObject":{"one":"объект данных","other":"объекта данных","few":"объекта данных","many":"объектов данных"},"dataObjectReference":{"one":"ссылка на объект данных","other":"ссылки на объекты данных","few":"ссылки на объекты данных","many":"ссылок на объекты данных"},"dataStore":{"one":"хранилище данных","other":"хранилища данных","few":"хранилища данных","many":"хранилищ данных"},"dataStoreReference":{"one":"ссылка на хранилище данных","other":"ссылки на хранилища данных","few":"ссылки на хранилища данных","many":"ссылок на хранилища данных"},"endEvent":{"one":"событие завершения","other":"события завершения","few":"события завершения","many":"событий завершения"},"eventBasedGateway":{"one":"шлюз по событиям","other":"шлюза по событиям","few":"шлюза по событиям","many":"шлюзов по событиям"},"exclusiveGateway":{"one":"исключающий шлюз","other":"исключающих шлюза","few":"исключающих шлюза","many":"исключающих шлюзов"},"group":{"one":"группа","other":"группы","few":"группы","many":"групп"},"inclusiveGateway":{"one":"включающий шлюз","other":"включающих шлюза","few":"включающих шлюза","many":"включающих шлюзов"},"intermediateCatchEvent":{"one":"промежуточное событие-ловушка","other":"промежуточных события-ловушки","few":"промежуточных события-ловушки","many":"промежуточных событий-ловушек"},"intermediateThrowEvent":{"one":"промежуточное событие-отправка","other":"промежуточных события-отправки","few":"промежуточных события-отправки","many":"промежуточных событий-отправок"},"lane":{"one":"дорожка","other":"дорожки","few":"дорожки","many":"дорожек"},"manualTask":{"one":"ручная задача","other":"ручные задачи","few":"ручные задачи","many":"ручных задач"},"messageFlow":{"one":"поток сообщений","other":"потока сообщений","few":"потока сообщений","many":"потоков сообщений"},"parallelGateway":{"one":"параллельный шлюз","other":"параллельных шлюза","few":"параллельных шлюза","many":"параллельных шлюзов"},"participant":{"one":"участник","other":"участника","few":"участника","many":"участников"},"process":{"one":"процесс","other":"процесса","few":"процесса","many":"процессов"},"receiveTask":{"one":"задача приёма","other":"задачи приёма","few":"задачи приёма","many":"задач приёма"},"scriptTask":{"one":"задача со скриптом","other":"задачи со скриптом","few":"задачи со скриптом","many":"задач со скриптом"},"sendTask":{"one":"задача отправки","other":"задачи отправки","few":"задачи отправки","many":"задач отправки"},"sequenceFlow":{"one":"поток управления","other":"потока управления","few":"потока управления","many":"потоков управления"},"serviceTask":{"one":"сервисная задача","other":"сервисные задачи","few":"сервисные задачи","many":"сервисных задач"},"startEvent":{"one":"стартовое событие","other":"стартовых события","few":"стартовых события","many":"стартовых событий"},"subProcess":{"one":"подпроцесс","other":"подпроцесса","few":"подпроцесса","many":"подпроцессов"},"task":{"one":"задача","other":"задачи","few":"задачи","many":"задач"},"textAnnotation":{"one":"текстовая аннотация","other":"текстовые аннотации","few":"текстовые аннотации","many":"текстовых аннотаций"},"transaction":{"one":"транзакция","other":"транзакции","few":"транзакции","many":"транзакций"},"userTask":{"one":"задача пользователя","other":"задачи пользователя","few":"задачи пользователя","many":"задач пользователя"}}},"targets":{"onForm":"форма {form}"},"preview":{"after":"После","before":"До","fileAdded":"Файл добавлен","fileDeleted":"Файл удалён"},"vscode":{"action":{"openAnEditor":"Penstock: чтобы выполнить {title}, откройте редактор Penstock.","unavailableHere":"Penstock: эта диаграмма не поддерживает {title}."},"codeLinks":{"diagramsUsing":"Диаграммы, использующие {name}:{line}","forTitle":"Код для {title}","nothingUses":"Ни один файл проекта не использует {title}","place":"{title} · строка {line}","unreadable":"Связи с кодом не смогли прочитать проект: {reason}","whereUsed":"Где это используется","didYouMean":"Вы имели в виду «{name}»?","caseSensitive":"Имена чувствительны к регистру, в диаграммах «{name}»","changeTo":"Заменить на «{name}»","unknown":{"process":"Ни в одной диаграмме проекта нет процесса «{name}»","element":"Ни в одной диаграмме проекта нет элемента «{name}»","message":"Ни в одной диаграмме проекта нет сообщения «{name}»","decision":"В проекте нет решения «{name}»","error":"Ни одно событие ошибки в диаграммах проекта не ловит «{name}»","variable":"Ни одна диаграмма проекта не использует переменную «{name}»"},"workerVariable":{"notFetched":"Воркер не забирает «{name}», поэтому во время выполнения там null","notRead":"Ничто в диаграммах проекта не читает «{name}»","notSet":"Ничто в диаграммах проекта не задаёт «{name}»{only}","onlySet":", задано только «{name}»","setBefore":"{message} до этого шага"},"namedWorker":"Диаграммы используют имя метода «{name}» как тип задания, поэтому переименование метода сломает их","nameJobType":"Задать имя типа задания «{name}»","unknownElement":{"noElement":"Нет элемента «{name}» в {owner}","caseSensitive":"в диаграммах написано «{name}», а имена чувствительны к регистру"}},"config":{"created":"Создан penstock.yaml. Выбранный движок записан в проекте.","updated":"Обновлён penstock.yaml. Выбранный движок добавлен в файл; больше в нём ничего не менялось."},"diff":{"aBranch":"ветка","aBranchDetail":"сравнить с другой веткой","anotherFile":"другой файл","anotherFileDetail":"сравнить с диаграммой с любого места на этой машине","committedDetail":"зафиксированная версия","compareWith":"Сравнить {name} с","compareWithBranch":"Сравнить с веткой","compareWithTitle":"Сравнить с","gone":"Это сравнение больше не открыто. Сравните диаграмму заново.","openOneFirst":"Откройте диаграмму BPMN, чтобы сравнить, или выберите её в проводнике."},"document":{"changeRefused":"VS Code не принял изменение {name}","editorNotBuilt":"Редактор Penstock не собран. Выполните npm run build в папке vscode."},"docs":{"notWebAddress":"Адрес {url} не является веб-адресом, поэтому он не был открыт"},"file":{"noWorkspace":"Нет папки рабочей области, в которую можно записать"},"git":{"noSuchRef":"В {ref} нет {name}: {reason}","notInRepository":"{file} не входит в репозиторий git, поэтому не с чем сравнивать по {ref}"},"hooks":{"noSuchRun":"Такого запуска перехвата нет"},"licence":{"accountHeading":"Penstock {tier}: {detail}.","active":"Penstock {tier} активен на этой машине. Командная строка использует его тоже.","activeAgain":"Penstock {tier} снова активен на этой машине. Командная строка использует его тоже.","activatedAgo":"с {when}","alreadyBought":"Я уже купил","askEmail":"Почта, которой вы покупали Penstock:","askPaidEmail":"Почта, которой вы оплачивали:","buyPro":"Купить Pro","buyTeam":"Купить Team","buyTier":"Купить {tier}","checkoutExpired":"Ссылка на оплату истекла. Откройте новую, чтобы купить Penstock.","checkoutFailed":"Платёж не прошёл, деньги не списаны.","checkoutOpened":"Оплата Penstock {tier} открыта в вашем браузере; всё завершится само, когда вы оплатите.","checkoutStopped":"Ожидание оплаты прекращено через час. Если вы оплатили, войдите с этим адресом.","clipboard":"Лицензионный ключ в буфере обмена. Храните его в тайне; в конвейере задайте его как PENSTOCK_LICENSE.","codeSent":"Код для входа уже отправлен на {email}. Код из письма:","copyKeyForCi":"Скопировать ключ для CI","entryPlaceholder":"you@example.com or PENSTOCK-PRO-...","entryPrompt":"Почта или лицензионный ключ. На почту, которой вы покупали Penstock, придёт код, и лицензия настроится сама.","neither":"Это не адрес электронной почты и не лицензионный ключ Penstock.","noLicence":"Нет лицензии Penstock, купленной на {email}.","noLicenceWithSignIn":"Нет лицензии Penstock, купленной на {email}. Купите её или войдите с той почты, которой вы её покупали.","notNow":"Не сейчас","offerText":"{title} — часть Penstock {tier}: {gives}.{ended} После оплаты лицензия сама попадёт на эту машину.","onlyTeam":"В конвейере работает только ключ Penstock Team.","paid":"Оплачено, спасибо. Остался один шаг, и Penstock настроится сам.","releaseCleared":"На этой машине не было места, которое можно освободить; файл лицензии очищен.","releaseNone":"На этой машине нечего освобождать, либо служба лицензий недоступна.","releaseThisMachine":"Освободить эту машину","released":"Лицензия освобождена на этой машине; её можно использовать на другой.","seatsFull":"Ваша лицензия уровня {tier} занята на {count} машинах, а это всё, что она разрешает. Выберите одну, чтобы освободить её для этой машины:","signIn":"Войти","statusFree":"Бесплатный Penstock","statusTier":"Penstock {tier}","statusTrial":"Penstock Pro: пробный период, осталось {days} дн.","suggestText":"{title} — часть Penstock {tier}: {gives}.","trialEnded":"Ваш {count}-дневный пробный период закончился.","trialEndedTooltip":"Пробный период Pro закончился {date}. Penstock Free продолжает работать. Нажмите, чтобы посмотреть тарифы.","unreachable":"Не удалось связаться со службой лицензий: {reason}","widget":"Лицензия Penstock","feature":{"autoLayout":{"title":"Автораскладка","gives":"превращает запутанную диаграмму в читаемый поток слева направо"},"codeLinks":{"title":"Диаграммы, связанные с кодом","gives":"связывает диаграммы с кодом, который их выполняет: путь от шага к его воркеру и обратно, использования, Code Vision, переменные и коды ошибок в обе стороны, переименование одной стороны вместе с другой, запуск тестов с диаграммы и покрытие на ней"},"conventions":{"title":"Соглашения по моделированию","gives":"подставляет идентификаторы и атрибуты так, как описано в penstock.yaml, прямо во время моделирования"},"flowAnalysis":{"title":"Анализ потоков","gives":"находит дедлоки, ветвления, которые выполняются дважды, и шаги, которые не выполнятся никогда, и показывает путь, который ведёт туда"},"migration":{"title":"Конвертация с Camunda 7 на Camunda 8","gives":"конвертирует диаграмму для Camunda 8 с визуальным предпросмотром до записи, помечает на элементе то, что конвертировать не удалось, и пишет воркеры по коду ваших делегатов"},"testRuns":{"title":"Запуски процессных тестов","gives":"выполняет процесс шаг за шагом на локальном движке с имитаторами и показывает, что каждый шаг получил и изменил"},"aiChat":{"title":"Чат с ИИ","gives":"позволяет агенту, который работает по Agent Client Protocol, читать и проверять ваши диаграммы и предлагать изменения, которые вы просматриваете на холсте"},"variableChecks":{"title":"Проверки переменных","gives":"проверяет поля и имена переменных, которые читает шаг, по коду, который их задаёт"}},"educationWho":"Бесплатный Pro для студентов, преподавателей и мейнтейнеров открытого кода","educationLine":"{who}: подать заявку на {url}","applyFreePro":"Получить Free Pro","educationApply":"{who}: подать заявку"},"testRuns":{"cancel":"Отмена","case":"тест-кейс {number}","confirmText":"Penstock развернёт тестовую сборку на {url}, запустит экземпляры и ответит на те задачи, которые имитирует. Сборка и её экземпляры удаляются после каждого запуска. Пометьте профиль deployment.forTests: true, чтобы больше не спрашивать.","confirmTitle":"Запустить тест-кейсы на этом движке?","controller":"Сценарии Penstock","failed":"Тест-кейс не прошёл. Смотрите трассировку.","mocked":" (имитация)","noCases":"файла тест-кейсов нет; penstock test-cases --generate напишет его рядом с диаграммой","noneYet":"В этом окне ещё не запускались тест-кейсы Penstock.","notConfirmed":"Не запущено: движок не подтверждён для тестов","output":"Запуски тестов Penstock","pickTitle":"Открыть запуск на диаграмме","run":"Запустить","skipped":"Тест-кейс пропущен.","started":"Тест-кейсы Penstock, {when}","step":"{id}: {state}{mocked}","suite":"{diagram}: {name}","trace":"Трассировка этого запуска лежит в {trace}","traceNotKept":"Penstock не смог сохранить трассировку запуска: {reason}","unknownDiagram":"Penstock не знает, к какой диаграмме относится этот запуск","waiting":"ожидание {kind} в {id}"},"unavailable":{"clipboardPicture":"Скопировать картинку в буфер обмена","converting":"Конвертация диаграммы Camunda 7","diagramTests":"Запуск тестов, связанных с диаграммой","editorPalette":"Палитра IDE","linkedRename":"Переименование того, с чем связана диаграмма","notYet":"В VS Code пока недоступно: {what}.","projectPageToolWindow":"Окно инструментов, которое отправляет страница проекта"},"migration":{"convertQuestion":"Преобразовать {name} для Camunda 8 в папку {folder}? Исходный файл не меняется."},"deploy":{"deploymentSection":"раздела deployment","tokenAnswered":"Конечная точка токена ответила {status}","tokenAnsweredWith":"Конечная точка токена ответила {status} ({code})","noPassword":"Нет пароля для {user} в {where}: введите его в разделе Connection","noClientSecret":"Нет секрета клиента в {where}: введите его в разделе Connection","noEngineAddress":"Нет адреса движка для {where}: задайте deployment.url"},"host":{"malformed":"Запрос составлен неверно","noSuchOperation":"У хоста нет такой операции","notAvailable":"{operation} недоступна на этом хосте","unreadable":"Не удалось прочитать {file}: {reason}","notValidJson":"это не корректный JSON","notValidYaml":"это не корректный YAML ({code}, строка {line})"},"tree":{"empty":"В этом проекте нет диаграмм","unreadable":"Дереву проекта не удалось прочитать этот проект: {reason}","open":"Открыть","reload":"Перечитать с диска","openConfig":"Открыть penstock.yaml","moreActions":"Другие действия…","actionsFor":"Действия для {name}","noFolder":"Откройте папку, чтобы увидеть её диаграммы, решения и формы Penstock.","openFolder":"Открыть папку","cli":{"group":"Запустить Penstock","runTitle":"Penstock: {command}","diffPrompt":"Коммит, ветка или тег для сравнения:","untrusted":"Чтобы запустить Penstock, сначала нужно довериться этому проекту","exportTitle":"Экспорт изображений","exportFolder":"Папка","exportFormat":"Формат","exportComment":"Для SVG ничего не нужно. Для PNG нужен установленный в проекте puppeteer.","command":{"check":"Проверка","scenarios":"Сценарии","junit":"Тесты JUnit","code":"Код","docs":"Документация","format":"Форматирование","change":"Различия с…","export":"Экспорт…","doctor":"Диагностика"}}},"mcp":{"nodeMissing":"Для MCP-сервера Penstock нужен Node.js с npm в PATH. Установите Node.js и перезагрузите окно."},"trust":{"accept":"Доверять проекту"},"rename":{"kind":{"bean":"имя бина","class":"класс Java","decision":"идентификатор решения","error":"код ошибки","form":"идентификатор формы","jobType":"тип задания","message":"имя сообщения","process":"идентификатор процесса","signal":"имя сигнала","topic":"тема внешней задачи"},"offerMessage":"{kind} «{name}» всё ещё используется в {summary}. Переименовать его там в «{newName}»?","nothingElse":"Больше нигде не встречается «{name}»","notRenamable":"Это значение не имя, которое диаграмма разделяет с кодом","action":"Переименовать","edit":"Переименовать {kind} «{name}» в «{newName}»","empty":"Новое имя {kind} не может быть пустым","scenarioMessage":"Переименовать и файл сценария {from} в {to}?","scenarioFailed":"Не удалось переименовать {from} в {to}, поэтому старое имя осталось.","files":{"one":"{count} файл","few":"{count} файла","many":"{count} файлов","other":"{count} файла"},"summary":"{files}, {diagrams} в диаграммах и формах, {code} в коде"},"whatsNew":{"title":"Penstock обновлён до {version}","action":"Что нового"},"about":{"title":"О плагине","version":"Версия","development":"разработная сборка","documentation":"Документация","licenses":"Лицензии открытого кода","trusted":"Доверенные проекты","trustedNone":"Через Penstock пока не доверен ни один проект.","trustedRemove":"Убрать","trustedFailed":"Penstock не смог убрать {path} из списка доверенных проектов: {reason}"},"chats":{"title":"Чаты","rename":"Переименовать чат","delete":"Удалить чат","renamePrompt":"Название чата","deleteConfirm":"Удалить чат «{title}»?","deleteDetail":"Его сообщения будут удалены из этого проекта.","deleteAction":"Удалить","connecting":"запускаем агента","empty":"Чатов пока нет. Спросите агента в поле ввода внизу редактора или начните чат здесь.","untrusted":"Доверьте этому рабочему пространству, чтобы агент мог в нём работать.","outside":"{path} находится вне проекта.","openFirst":"Откройте диаграмму, решение или форму, чтобы продолжить этот чат."}},"script":{"cannotBeRenamed":"Вкладку со скриптом Penstock нельзя переименовать","context":{"summary":"Контекст: {names}","title":"Переменные на этом шаге","showAll":"Показать все"},"writers":{"none":"Ни один шаг процесса её не задаёт","set":"Задаётся: {places}"},"typeLabel":"Тип: {type}","completion":{"variable":"Переменная процесса","builtin":"Встроенная функция FEEL"},"noSuchScript":"В этом месте диаграммы нет скрипта.","conflict":{"message":"Диаграмма изменила {name}, пока вы его редактировали","keepTab":"Оставить мой текст","useDiagram":"Взять текст из диаграммы"},"run":{"button":"Выполнить","title":"Значения для выражения","help":"Каждая переменная принимает значение JSON или выражение FEEL. Пустая переменная не задаётся.","kindLabel":"Тип","kind":{"json":"JSON","expression":"FEEL"},"unavailable":"Здесь выполняется только выражение FEEL. Скрипты Groovy и JavaScript выполняются в движке, как часть процесса."}},"themeChoice":{"title":"Тема редактора","ide":"Как в IDE","light":"Светлая","dark":"Тёмная","dracula":"Dracula"},"processDebug":{"problem":{"unreadable":"Диаграмму не удалось прочитать, поэтому отладочная копия не создана.","noProcess":"В диаграмме нет исполняемого процесса для отладки.","unknownProcess":"Процесса {process} нет в этой диаграмме.","unreachable":"Не удалось связаться с движком.","notDeployed":"После развёртывания движок не сообщил об отладочной копии {process}.","incident":"Движок сообщил об инциденте.","timedOut":"Движок не ответил за {seconds} с.","unreachableAfter":"Движок не ответил после попыток: {attempts}. {reason}"},"message":{"stopped":"Отладка остановлена.","finished":"Экземпляр процесса завершился.","incident":"У экземпляра инцидент: {reason}","endedElsewhere":"Экземпляр завершён вне отладчика."},"cleanup":{"searchFailed":"Не удалось найти отладочные экземпляры: {reason}","cancelFailed":"Экземпляр {instance} всё ещё выполняется: {reason}","deleteFailed":"Отладочная копия {deployment} всё ещё развёрнута: {reason}"},"breakpointDot":"Точка останова на «{element}». Нажмите, чтобы убрать.","confirm":{"title":"Отлаживать на этом движке?","text":"Penstock развернёт копию процесса как {copy} на {url}, запустит её экземпляр и удалит копию, когда вы остановите отладку. Копия выполняет настоящие задачи вашего процесса, поэтому воркеры и делегаты на этом движке выполнят настоящую работу.","accept":"Отладить"},"invalidValue":"Значение {name} должно быть корректным JSON","variables":"Переменные","variablesHint":"Измените значение, чтобы задать его до продолжения процесса. Значения — JSON, поэтому текст нужно брать в кавычки.","noVariables":"У этого шага пока нет переменных.","variableName":"Имя","variableValue":"Значение {name}","variableValueHint":"Значение JSON","addVariable":"Добавить переменную","breakpoints":"Точки останова","noBreakpoints":"Нет точек останова. Выберите шаг и переключите точку, чтобы остановиться на нём.","removeBreakpoint":"Убрать точку останова на «{element}»","remove":"Убрать","toggleOnSelection":"Переключить точку останова на выбранном","cleanupPending":"Удаляю отладочную копию…","cleanupDone":"Отладочная копия {copy} удалена с движка.","cleanupFailed":"Отладочную копию не удалось удалить","leftOnTheEngine":"Осталось на движке: {deployment}. Penstock повторит попытку при следующем открытии этой вкладки.","tryAgain":"Повторить","checkingTheEngine":"Ищу движок для отладки.","noEngine":"Нет движка для отладки.","noEngineHint":"Подключите движок на этом компьютере или помеченный deployment.forTests, чтобы отлаживать копию процесса.","state":{"idle":"Не запущено","deploying":"Развёртывание копии","running":"Выполняется","paused":"Пауза","finished":"Завершено","failed":"Ошибка","stopped":"Остановлено"},"starting":"Запуск…","start":"Начать отладку","startAndStep":"Старт с шагом","continue":"Продолжить","step":"Шаг","stop":"Стоп","copyNote":"Отладка запускает копию процесса. Оригинал не затрагивается: копия разворачивается как {copy} и удаляется, когда сеанс заканчивается.","copyIdFallback":"<id процесса>__debug","emptyTitle":"Отладьте этот процесс на своём движке","emptyHint":"Расставьте точки останова на шагах и запустите. Процесс остановится перед каждой точкой, и вы сможете прочитать и изменить переменные, продолжить или перейти к следующему элементу.","pausedAtBreakpoint":"Пауза на точке останова","pausedAtStep":"Пауза после шага","deploying":"Развёртываю копию и запускаю её экземпляр.","waiting":"Ожидание того, что вне отладчика: воркера, таймера, сообщения или пользовательской задачи.","runningNote":"Выполняется. Пройдено шагов: {count}.","process":"Процесс","startVariables":"Стартовые переменные (JSON)","startVariablesHint":"Объект, например {\\"amount\\": 5}. Оставьте {}, чтобы начать без переменных."},"web":{"pageTitle":"Penstock","unknownFailure":"Неизвестный сбой","serverTimeout":"Сервер не ответил вовремя.","fileNotFound":"Файл не найден.","noDocumentOpen":"Ни один файл не открыт.","deletedOnDisk":"Файл {name} удалён на диске. Ваши изменения сохранены здесь.","changedOnDisk":"Файл {name} изменился на диске, пока в нём есть несохранённые изменения.","reloadedFromDisk":"Файл {name} перечитан с диска.","reloadFailed":"Не удалось перечитать {name}: {reason}","saveFailed":"Не удалось сохранить {name}: {reason}","tree":{"project":"Проект","newFile":"Новый файл","empty":"В проекте нет диаграмм, решений и форм.","emptyHint":"Создайте файл, чтобы начать, или запустите Penstock в папке проекта.","unsaved":"Есть несохранённые изменения","more":"Действия с проектом","refresh":"Обновить","copyFailed":"Не удалось скопировать в буфер обмена."},"tabs":{"label":"Открытые файлы","close":"Закрыть {name}","unsaved":"В {name} есть несохранённые изменения","all":"Все открытые файлы","menu":"Действия для {name}"},"pane":{"opening":"Открывается {name}...","failed":"Не удалось открыть {name}.","loadingEditor":"Загрузка редактора...","editorFailed":"Не удалось загрузить редактор.","editorFailedHint":"Проверьте соединение с сервером и повторите."},"banner":{"deleted":"Файл {name} удалён на диске. Сохраните, чтобы записать его снова.","changed":"Файл {name} изменился на диске. Ваши несохранённые изменения остались здесь.","saveFailed":"Не удалось сохранить: {reason}","reload":"Перечитать с диска","keep":"Оставить мою версию","closeTab":"Закрыть вкладку","compare":"Сравнить"},"connection":{"lost":"Соединение с сервером потеряно. Несохранённые изменения остаются на этой странице; сохраните их снова, когда соединение вернётся."},"empty":{"title":"Ни один файл не открыт.","hint":"Выберите диаграмму, решение или форму в дереве проекта или создайте новый файл."},"newFile":{"title":"Новый файл","type":"Тип","kind":{"bpmn":"BPMN-диаграмма","dmn":"DMN-решение","form":"Форма"},"content":"Содержимое","empty":"Пустое","example":"Пример","name":"Имя","nameHint":"Расширение {extension} добавляется, если его нет.","folder":"Папка","folderHint":"Относительно папки проекта. Оставьте пустым для папки проекта.","create":"Создать","nameEmpty":"Введите имя файла.","nameCharacters":"Имя не должно содержать / \\\\ : * ? \\" < > |","folderOutside":"Папка должна находиться внутри проекта.","exists":"Файл с таким именем уже есть в этой папке.","failed":"Не удалось создать файл: {reason}"},"unsaved":{"title":"Закрыть {name}?","text":"В {name} есть несохранённые изменения.","discard":"Отбросить изменения"},"text":{"label":"Содержимое {name}"},"command":{"actions":"Найти действие","closeAll":"Закрыть все вкладки","closeSplit":"Закрыть разделённый вид","closeTab":"Закрыть вкладку","jumpToTab":"Перейти к вкладке","newFile":"Новый файл","nextTab":"Следующая вкладка","previousTab":"Предыдущая вкладка","quickOpen":"Открыть файл","reconnect":"Подключиться к серверу снова","save":"Сохранить","saveAll":"Сохранить все","settings":"Настройки","shortcuts":"Сочетания клавиш","splitView":"Разделить вид","resetLayout":"Сбросить расположение панелей","toggleSidebar":"Показать или скрыть боковую панель","askAgent":"Спросить агента","agents":"ИИ-агенты"},"conflict":{"diff":"Различия между вашей версией и файлом на диске","help":"Если оставить вашу версию, она заменит файл при следующем сохранении.","keepMine":"Оставить мою версию","legendMine":"Ваша версия","legendTheirs":"На диске","same":"В вашей версии и в файле на диске одни и те же строки.","summary":"Строк только в вашей версии: {mine}. Строк только на диске: {theirs}.","takeTheirs":"Загрузить с диска","title":"Файл {name} изменился на диске","tooDifferent":"Версии слишком сильно отличаются, чтобы сравнивать их построчно."},"drafts":{"discard":"Отбросить","found":{"one":"Найдены несохранённые изменения прошлого сеанса в {count} файле.","few":"Найдены несохранённые изменения прошлого сеанса в {count} файлах.","many":"Найдены несохранённые изменения прошлого сеанса в {count} файлах.","other":"Найдены несохранённые изменения прошлого сеанса в {count} файлах."},"label":"Несохранённые изменения прошлого сеанса","restore":"Восстановить несохранённые изменения"},"expired":{"hint":"Несохранённые изменения хранятся в этом браузере и вернутся, когда вы снова откроете проект.","retry":"Повторить","text":"Ссылка, по которой открыта эта страница, больше не работает. Скорее всего, Penstock перезапустили. Используйте ссылку, которую penstock web вывел в терминале.","title":"Страница потеряла связь с Penstock"},"main":{"label":"Редактор"},"menu":{"close":"Закрыть","closeAll":"Закрыть все","closeOthers":"Закрыть остальные","closeRight":"Закрыть справа","copied":"Скопировано.","copyFailed":"Не удаётся скопировать в буфер обмена.","copyPath":"Копировать путь","copyRelative":"Копировать относительный путь","reveal":"Показать в дереве проекта","splitRight":"Разделить вправо","splitDown":"Разделить вниз"},"quick":{"commandsLabel":"Команды","files":"Файлы","hint":"Введите текст для фильтра. Выбирайте стрелками, открывайте клавишей Enter. Введите >, чтобы увидеть команды.","label":"Открыть файл","noCommands":"Подходящих команд нет.","noFiles":"В этом проекте пока нет диаграмм, решений и форм.","noMatch":"Нет файлов, подходящих под «{query}».","openFile":"{path}, открыт","opened":"открыт","placeholder":"Ищите файлы по имени или введите > для команд","recent":"Недавно открытые","results":"Файлы","sidePlaceholder":"Выберите файл, чтобы открыть его рядом с этим"},"settings":{"appearance":"Оформление","autosave":"Сохранять изменения автоматически","autosaveDelay":"Задержка (секунды)","autosaveHelp":"Файл записывается, если его не правили столько секунд. Файл, изменившийся на диске, не перезаписывается никогда.","autosaveRange":"Задержка должна быть целым числом секунд от {min} до {max}.","saving":"Сохранение","themeSystem":"Как в системе","title":"Настройки","agents":"ИИ-агенты","agentsHelp":"Включайте и выключайте ИИ-чат, выбирайте, как открываются беседы, и настраивайте агентов.","agentsManage":"Управление ИИ-агентами…","suggestNextBlock":"Предлагать следующий элемент","suggestNextBlockHelp":"Показывает рядом с тупиком элемент, который, скорее всего, идёт следом. Tab — добавить, Escape — отклонить.","suggestions":"Предлагать имена, источники и выражения","suggestionsHelp":"Показывает после курсора бледным текстом имя, источник или выражение, которое вернее всего подходит полю панели свойств. Tab — добавить, Escape — отклонить, Alt+Shift+E — объяснить.","editor":"Редактор"},"shortcuts":{"editorHint":"Нажмите ? внутри редактора, чтобы увидеть его собственные сочетания клавиш.","group":{"files":"Файлы","tabs":"Вкладки","window":"Окно"},"open":"Сочетания клавиш","title":"Сочетания клавиш"},"skip":"Перейти к редактору","split":{"closePane":"Закрыть панель файла {name}","resize":"Изменить размер разделённого вида"},"state":{"conflict":"Изменён на диске","deleted":"Удалён на диске","failed":"Не удаётся сохранить","saved":"Все изменения сохранены","saving":"Сохранение...","unsaved":"Есть несохранённые изменения","unsavedAuto":"Есть несохранённые изменения, автосохранение через {seconds} с без правок"},"status":{"connected":"Подключено","encoding":"Кодировка и концы строк","engine":"Движок","expired":"Ссылка устарела","label":"Состояние","licence":"Лицензия","offline":"Нет связи"},"title":{"document":"{name} - {project} - Penstock","project":"{project} - Penstock"},"welcome":{"title":"Открыть проект","text":"Выберите папку с вашими диаграммами, решениями и формами. Ничего не покидает эту машину.","open":"Открыть проект...","recent":"Недавние проекты","noRecent":"Пока не открыто ни одного проекта.","recentFailed":"Не удалось загрузить недавние проекты.","missing":"{folder} больше не существует.","notFound":"Папка не найдена","forget":"Убрать {name} из списка","hint":"Penstock можно запустить и сразу с папкой: penstock web <папка>."},"folders":{"title":"Открыть проект","open":"Открыть проект","willOpen":"Откроет {folder}","places":"Места","home":"Домашняя папка","computer":"Компьютер","recent":"Недавние","path":"Папка","location":"Расположение","list":"Папки","showHidden":"Показать скрытые папки","showHiddenCount":"Показать скрытые папки ({count})","hereConfig":"Здесь проект: в этой папке есть penstock.yaml","hereDiagrams":"Здесь проект: в этой папке диаграмм, решений и форм: {count}","noFolders":"Здесь нет папок.","truncated":"Показаны первые {shown} из {total} папок. Введите путь, чтобы пойти дальше.","link":"{name} - ссылка на другую папку","linkTag":"ссылка","projectTag":"проект"},"project":{"switcher":"Проекты","recent":"Недавние проекты","openAnother":"Открыть другой проект...","close":"Закрыть проект","gone":"Папки проекта {name} больше нет. Несохранённые изменения остаются на этой странице.","downloadZip":"Скачать проект как .zip","unsavedOpenTitle":"Открыть другой проект?","unsavedCloseTitle":"Закрыть проект?","unsavedText":"В {count} открытых файлах есть несохранённые изменения. Вкладки этого проекта закроются при смене проекта.","saveAll":"Сохранить всё","saveAllFailed":"Не удалось сохранить все файлы. Ничего не закрыто.","awayTitle":"Проект сменили в другой вкладке","awayText":"Эта страница всё ещё показывает прежний проект. Перезагрузите её, чтобы продолжить с открытым сейчас проектом."},"entry":{"newFolder":"Новая папка","newFolderTitle":"Новая папка","createFolder":"Создать папку","name":"Имя","inside":"Будет создана в {folder}.","insideProject":"Будет создана в папке проекта.","nameEmpty":"Введите имя.","nameCharacters":"Имя не должно содержать / \\\\ : * ? \\" < > | и управляющие символы.","nameEnds":"Имя не должно начинаться с пробела и заканчиваться пробелом или точкой.","rename":"Переименовать","renameLabel":"Новое имя","duplicate":"Дублировать","moveAction":"Переместить в...","moveTitle":"Переместить {name}","moveTo":"Куда","move":"Переместить","moveFailed":"Не удалось переместить {name}: {reason}","projectFolder":"(папка проекта)","noFolders":"Нет другой папки, куда это можно переместить.","delete":"Удалить","deleteFile":"Удалить файл","deleteFolder":"Удалить папку","deleteFileTitle":"Удалить {name}?","deleteFolderTitle":"Удалить папку {name}?","deleteFileText":"{name} будет удалён с диска. Это нельзя отменить.","deleteFolderText":"Папка {name} и {count} файлов в ней будут удалены с диска. Это нельзя отменить.","deleteUnsaved":"{count} из них открыты с несохранёнными изменениями, и эти изменения будут потеряны.","copyPath":"Копировать путь","copyRelative":"Копировать относительный путь","copied":"Путь скопирован.","download":"Скачать","downloadActive":"Скачать открытый файл","renameTitle":"Переименовать {name}"},"upload":{"title":"Добавить файлы в проект","text":"Выберите, куда в проекте сохранить файлы. Они копируются туда; оригиналы остаются на месте.","button":"Загрузить файл...","drop":"Перетащите файлы BPMN, DMN или форм, чтобы добавить их в проект","extension":"Имя должно заканчиваться на .bpmn, .dmn или .form.","ignored":"Можно добавить только файлы .bpmn, .dmn и .form. Остальные пропущены.","addOne":"Добавить файл","addMany":"Добавить файлы: {count}","fileN":"Файл {number}"},"titleBar":{"label":"Заголовок окна"},"dock":{"resize":"Изменить размер панелей"},"code":{"noServer":"Только подсветка синтаксиса. Установите {server}, чтобы здесь работали автодополнение, подсказки и переход к определению.","uses":{"title":"Используется в диаграммах","open":"Открыть {name} в {diagram}","item":"{type} в {diagram}","more":"и ещё {count}","kind":{"JOB_TYPE":"Тип задания","TOPIC":"Топик","CLASS":"Класс","BEAN":"Бин","MESSAGE":"Сообщение"}},"names":{"code":"в коде","diagram":"в диаграмме","both":"в коде и в диаграммах"}},"toolPanel":{"label":"Модель проекта Penstock","toolbar":"Действия Penstock","filter":"Фильтр модели","refresh":"Обновить","open":"Открыть","menu":"Действия узла Penstock","loading":"Чтение модели проекта...","error":"Не удалось прочитать модель проекта.","empty":"Пока нечего показывать.","emptyHint":"Откройте папку с файлами BPMN, DMN или форм либо начните с примера.","noMatch":"Ничего не найдено по фильтру.","locked":"Связи с кодом входят в Pro.","unlock":"Разблокировать","truncated":"В дереве показаны первые {count} узлов. Сузьте список фильтром.","refreshFailed":"Не удалось обновить модель: {reason}","stale":"Модель изменилась, пока вы выбирали. Выберите действие снова.","unsupported":"Редактор в браузере пока не умеет этого.","copied":"Скопировано в буфер обмена."},"sidebar":{"label":"Боковая панель","actions":"Действия","check":"Проверка","scenarios":"Сценарии","monitor":"Мониторинг","debug":"Отладка","layout":"Авторасстановка","unavailable":"Недоступно для открытого файла.","resize":"Изменить ширину боковой панели","resizeChats":"Изменить высоту списка чатов","toggle":"Показать или скрыть боковую панель","countScenarios":"{passed} из {all} сценариев пройдено","countProblems":{"one":"{count} проблема","few":"{count} проблемы","many":"{count} проблем","other":"{count} проблемы"},"countWaiting":{"one":"{count} ожидает","few":"{count} ожидают","many":"{count} ожидают","other":"{count} ожидают"}},"script":{"noDiagram":"Диаграмма этого скрипта не открыта в редакторе."}},"webHost":{"testsNeedTheIde":"Запуск тестов воркера требует IDE. Запустите их своим инструментом сборки.","source":{"readOnly":"Только чтение","truncated":"Файл большой, поэтому показана только его первая часть.","label":"Исходный код {name}"},"compare":{"failed":"Не удалось сравнить две версии","failedHint":"Одна из них не является диаграммой, которую Penstock может прочитать.","against":"Сравнение с {version}","summary":"Добавлено {added}, удалено {removed}, изменено {changed}, перемещено {moved}","identical":"Различий нет","action":"Сравнить с последним коммитом","notTracked":"Этого файла ещё нет в git-репозитории, сравнивать не с чем.","head":"последним коммитом","tab":"{name} (изменения)"},"places":{"open":"Открыть","hint":"Найдено несколько мест. Выберите, какое открыть.","none":"{name} не встречается ни в одном исходном файле проекта."},"rename":{"title":"Переименовать в связанных файлах","intro":"{from} теперь называется {to}. Старое имя всё ещё записано в:","apply":"Переименовать","offer":"{from} всё ещё записано в других местах. {summary}","review":"Просмотреть","done":"{from} переименовано в {to}. Мест: {places}, файлов: {files}.","failed":"Ничего не переименовано: {reason}","where":{"diagram":"Диаграмма","form":"Форма","code":"Код"}},"migration":{"title":"Преобразовать {name} для Camunda {target}","convert":"Преобразовать","folder":"Папка","folderHint":"Преобразованные файлы попадут сюда, внутри проекта.","folderOutside":"Папка должна быть внутри проекта","replace":"Существующие файлы","replaceHint":"Уже есть: {files}","replaceBox":"Заменить уже существующие файлы","changes":"Что изменится","noChanges":"В самом файле ничего не меняется.","open":"Что остаётся открытым","nothingOpen":"Ничего не остаётся открытым.","byHand":"Вручную","summary":"Изменений: {changes}, открыто: {open}, вручную: {manual}"},"licence":{"title":"Лицензия Penstock","plan":"Тариф: {tier}. {detail}","loading":"Чтение лицензии…","trial":"Пробный Pro, осталось дней: {days}.","needed":"Для этого нужен Penstock Pro. Введите ключ или купите его.","key":"Лицензионный ключ","keyHint":"Ключ из вашей покупки. Он хранится на этом компьютере, а не в странице.","keyEmpty":"Сначала введите лицензионный ключ","email":"Эл. почта","emailHint":"Подставляется на странице оплаты при покупке.","activate":"Активировать","buyPro":"Купить Pro","buyTeam":"Купить Team","release":"Освободить этот компьютер","activated":"Penstock {tier} активен на этом компьютере.","released":"Лицензия освобождена на этом компьютере.","checkoutOpened":"Страница оплаты открыта в новой вкладке. Ключ придёт по e-mail после оплаты.","tier":{"free":"Бесплатно","pro":"Pro","team":"Team"}},"clipboard":{"copyTitle":"Скопировать вручную","copyText":"Браузер не разрешил странице копировать. Скопируйте текст ниже сами.","copy":"Копировать","pasteTitle":"Вставить вручную","pasteText":"Браузер не разрешил странице читать буфер обмена. Вставьте текст ниже."}},"desktop":{"name":"Penstock","about":{"description":"Редактор BPMN, DMN и форм для Camunda"},"menu":{"file":"Файл","newFile":"Новый файл","newWindow":"Новое окно","openProject":"Открыть проект...","openRecent":"Открыть недавний","noRecent":"Нет недавних проектов","clearRecent":"Очистить недавние проекты","closeProject":"Закрыть проект","save":"Сохранить","closeTab":"Закрыть вкладку","undo":"Отменить","redo":"Повторить","cut":"Вырезать","copy":"Копировать","paste":"Вставить","selectAll":"Выделить все элементы","closeWindow":"Закрыть окно","revealMac":"Показать в Finder","revealWindows":"Показать в проводнике","revealLinux":"Показать в файловом менеджере","edit":"Правка","view":"Вид","toggleTree":"Показать или скрыть дерево проекта","toggleSidebar":"Показать или скрыть боковую панель","zoomIn":"Увеличить","zoomOut":"Уменьшить","zoomReset":"Реальный размер","window":"Окно","help":"Справка","shortcuts":"Горячие клавиши","website":"Сайт Penstock","about":"О программе {name}"},"shell":{"starting":"Открывается {project}...","welcome":{"title":"Откройте проект","hint":"Выберите папку с диаграммами BPMN, решениями DMN и формами.","open":"Открыть проект...","recent":"Недавние проекты","noRecent":"Здесь появятся открытые вами проекты."},"failed":{"title":"Не удалось запустить редактор","hint":"Движок редактора не запустился для проекта {project}."},"stopped":{"title":"Движок редактора остановился","hint":"Несохранённые изменения остались в окне. Перезапустите движок, чтобы продолжить."},"crashed":{"title":"Окно редактора остановилось","hint":"Перезагрузите окно, чтобы продолжить."},"restart":"Перезапустить","reload":"Перезагрузить","another":"Открыть другой проект...","details":"Подробности"},"dialog":{"openProject":{"title":"Открыть проект","button":"Открыть"},"unsaved":{"title":"Закрыть без сохранения?","text":"В этом окне есть несохранённые изменения. Они будут потеряны, если закрыть окно.","discard":"Отказаться от изменений","cancel":"Отмена"},"quit":{"title":"Выйти без сохранения?","text":"В некоторых окнах есть несохранённые изменения. Они будут потеряны при выходе."}}},"agent":{"notFound":"Команда агента не найдена или не может быть запущена.","unsafe":"Агент не был запущен: командный файл Windows не может безопасно получить эти аргументы.","exited":"Агент неожиданно остановился.","installFailed":"Не удалось установить службу агента. Проверьте сеть или реестр npm и попробуйте снова.","npmMissing":"Для запуска службы агента Penstock нужны Node.js и npm.","unpublished":"У npm нет командной строки Penstock для этой версии, поэтому служба агента не запустилась.","serviceExited":"Служба агента остановилась до того, как стала готова.","serviceNotStarted":"Службу агента не удалось запустить.","exitCode":"код выхода {code}","authRequired":"Агенту требуется аутентификация. Войдите в систему или настройте учетные данные.","failed":"Агент сообщил об ошибке: {detail}","timeout":"Агент не ответил вовремя.","write":"Записать {path}","allow":"Разрешить","reject":"Отклонить","writeRejected":"Запись в {path} не была разрешена.","newChat":"Новый чат","modeName":"Режим","stepOf":"шаг {step} из {total}","waitingForYou":"ждёт вашего ответа","retiring":"Агент завершается в более старом окне; попробуйте ещё раз через минуту.","updateNeeded":"Сервер агента новее этого окна. Обновите плагин или расширение и попробуйте снова.","hubLost":"Сервер агента остановился. Попробуйте ещё раз через минуту.","serverGone":"Агент остановился, потому что его сервер закрылся во время хода.","stopped":"Ход остановлен.","unanswered":"На вопрос никто не ответил, поэтому ход остановлен.","quiet":"Пока ни одно окно не было открыто, агент ничего не выводил, поэтому ход был остановлен.","killed":"Агент не остановился вовремя, поэтому его перезапустили, а этот ход остановлен.","newSession":"Агент не хранит прежние сообщения этого чата, поэтому продолжает в новом сеансе.","contextFile":"Сообщение относится к файлу {file}.","contextElements":"Выбранные элементы: {elements}.","contextLinks":"Когда упоминаете элемент диаграммы Penstock, пишите его как markdown-ссылку [Название](penstock:<файл>#<id>): путь к файлу относительно проекта и id элемента, например [Charge card](penstock:docs/order-process.bpmn#charge_card). Файл - это [имя](penstock:<файл>). Не показывайте id и путь в видимом тексте. Прежде чем называть переменную, тип задания или привязку, вызовите инструмент element_context сервера penstock для этого элемента: он перечисляет доходящие до него переменные и имена, которые уже есть в проекте, - берите их, а не придумывайте новые.","reason":{"unknownAgent":"Агента с именем {agent} нет.","noSuchChat":"Такого чата нет.","noSuchQueued":"Этого сообщения больше нет в очереди.","noSuchOption":"Агент не предлагает такую настройку.","badOptionValue":"Агент не предлагает такой вариант для этой настройки.","optionRefused":"Агент не принял изменение: {reason}","noSignIn":"Агент не предлагает вход, который можно начать отсюда.","signInRefused":"Агент не выполнил вход: {reason}","off":"Чат с ИИ выключен в настройках.","staleQuestion":"Агент больше не ждёт ответа на этот вопрос.","badOption":"{option} не входит в ответы, которые предложил агент.","badText":"Сообщение не должно быть пустым или длиннее {limit} символов.","badTitle":"Название не должно быть пустым или длиннее {limit} символов.","queueFull":"В очереди не должно ждать больше {limit} сообщений.","notRunning":"Агент не запущен.","noSuchFile":"Такого файла нет.","fileTooLarge":"Файл должен быть меньше {limit} МБ.","isAFolder":"Это папка, а не файл.","noClient":"Клиенту нужно задать имя."},"log":{"skipped":"Penstock пропустил файл чата {file}: {reason}","notKept":"Penstock не смог сохранить чат {id}: {reason}"}},"patch":{"eventNotAllowed":"У {type} не может быть определения события {event}","sameElement":"поток последовательности не может начинаться и заканчиваться в \\"{id}\\"","startEventTarget":"в начальное событие \\"{id}\\" ничто не может вести","boundaryTarget":"в граничное событие \\"{id}\\" ничто не может вести","differentScopes":"\\"{from}\\" и \\"{to}\\" находятся не в одном процессе или подпроцессе","eventBasedTarget":"шлюз по событиям может вести только к принимающему событию или задаче получения, но не к \\"{to}\\"","duplicateFlow":"поток последовательности из \\"{from}\\" в \\"{to}\\" уже есть","notAFlowNode":"\\"{id}\\" — это {type}, в нём поток последовательности не может ни начинаться, ни заканчиваться","cannotRemoveContainer":"\\"{id}\\" — это {type}; удалите его в редакторе","isAFlow":"\\"{id}\\" — это поток последовательности; сдвиньте элементы, которые он соединяет","dependsOnFailed":"требует операции {number}, которую нельзя применить","noDrawing":"в диаграмме нет рисунка, куда можно поставить элементы"},"ghost":{"chip":{"add":"Добавить","connect":"Соединить","remove":"Удалить","rename":"Переименовать","move":"Переместить","condition":"Условие","reference":"Ссылка","worker":"Воркер","change":"Изменить"},"item":{"add":"Добавить {type} «{name}»","connect":"Соединить «{from}» с «{to}»","remove":"Удалить {type} «{name}»","move":"Переместить {type} «{name}»","rename":"Переименовать {type} «{name}» в «{value}»","condition":"Задать условие {type} «{name}»: {value}","setOne":"Задать {key} у {type} «{name}»: {value}","setMany":"Изменить {keys} у {type} «{name}»"},"check":{"passed":"Проверки пройдены"},"status":{"ok":"Пройдено","warning":"Предупреждение","error":"Ошибка","blocked":"Нельзя применить"},"checking":"Проверка предложенных изменений…","proposed":"Предложено изменений для проверки: {count}","position":"{label}: {position} из {count}","accepted":"Принято: {label}. Осталось проверить: {left}.","rejected":"Отклонено: {label}. Осталось проверить: {left}.","allRejected":"Отклонено изменений: {count}.","allAccepted":"Принято изменений одним шагом: {count}. Осталось проверить: {left}.","cannotAccept":"Нельзя принять «{label}»: {reason}","alreadyRejected":"отклонено изменение, от которого оно зависит","nothingToAccept":"Больше нечего принимать.","noLongerApplies":"«{label}» больше не подходит к диаграмме: {reason}","reviewed":"Проверка завершена: принято {accepted}, отклонено {rejected}.","commentSent":"Комментарий к «{label}» отправлен","region":"Проверка предложенных изменений","title":"Предложенные изменения","summary":"Проверить: {pending} из {total}","attention":"Требуют внимания: {count}","queued":"Ожидают ещё предложений: {count}","acceptAll":"Принять все","rejectAll":"Отклонить все","accept":"Принять","reject":"Отклонить","next":"Следующее изменение (J)","previous":"Предыдущее изменение (K)","showAll":"Показать все изменения","hideAll":"Скрыть список","comment":"Комментарий для агента","sendComment":"Отправить комментарий","close":"Закрыть проверку","decided":{"accepted":"Принято","rejected":"Отклонено"},"patchFindings":"Не связано с одним изменением","empty":"Нет предложенных изменений.","emptyHint":"Когда агент предлагает изменения, они появляются на холсте как призраки, которые можно принять или отклонить.","checkpoint":{"heading":"Чего не отменяет отмена","kept":"Перед каждым принятым шагом сохраняется контрольная точка диаграммы.","limit":{"comments":"Отправленные агенту комментарии остаются отправленными; отмена их не возвращает.","otherFiles":"Отменяется только эта диаграмма: формы, таблицы решений и код, изменённые агентом, — нет.","deployed":"Развёртывание, выполненное после принятия, не отзывается.","memory":"Контрольная точка хранится в памяти и исчезает при закрытии или перезагрузке редактора."}},"collapse":"Свернуть проверку","expand":"Развернуть проверку","undone":"Снова на проверке: {label}","acceptChange":"Принять изменение","rejectChange":"Отклонить изменение","wholeHint":"Агент записывает файл целиком, поэтому изменение принимается или отклоняется целиком.","wholeAccepted":"Изменение принято.","wholeRejected":"Изменение отклонено."},"suggestions":{"status":{"offered":"Предложено: {value}. Tab — добавить, Escape — отклонить, Alt+Shift+E — объяснить.","added":"Добавлено: {value}.","dismissed":"Предложение отклонено."},"explain":{"title":"Почему это предложение","likelihood":"Вероятность {percent}%","keys":"Tab — добавить, Escape — отклонить"},"unit":{"ratio":"отношение","percent":"процент","basisPoint":"базисный пункт","second":"секунда","millisecond":"миллисекунда","minute":"минута","hour":"час","byte":"байт","kilobyte":"килобайт","megabyte":"мегабайт","gigabyte":"гигабайт","dollar":"доллар","cent":"цент"},"origin":{"fact":"Факт из кода","pool":"Найдено в проекте","composed":"Составлено из имён диаграммы","transform":"Выражение, проверенное на примерах значений"},"reason":{"other":"Признак из диаграммы и проекта","kindConvert":"Перевод из {from} в {to} с коэффициентом {factor}.","kindWholeMinorUnits":"Округлить результат до целых: {to}.","kindIsoDuration":"Записать длительность как длину в формате ISO-8601.","kindDurationText":"Записать длительность как текст ISO-8601.","kindNumberFromText":"Прочитать текст как число.","kindTextFromValue":"Записать значение как текст.","kindDurationFromText":"Прочитать текст как длительность.","constantInDiagram":"Диаграмма уже использует {text}.","constantInProject":"Другая диаграмма проекта использует {text}.","weightedOverlap":"общие слова с именем","headEqual":"то же главное слово","tailEqual":"то же последнее слово","jaroWinkler":"написано похоже","trigramCosine":"общие буквосочетания","lengthRatio":"похожая длина","casingAgrees":"тот же регистр","ownerStripped":"убран префикс элемента","typeKnown":"известный тип","originContract":"записано кодом воркера","originScript":"записано скриптом","originDecision":"выход вызываемого решения","originDownstream":"читает следующий элемент","originScope":"доступно здесь","originTaskType":"записано для того же типа задачи в другой диаграмме","labelAssociation":"слова совпадают со словами подписи"}},"nextBlock":{"chip":"Далее: {type} · Tab — добавить","status":{"suggested":"Предложено дальше: {type}. Tab — добавить, Escape — отклонить.","added":"Добавлено: {type}.","dismissed":"Предложение отклонено."}},"aiBlocks":{"selectElement":"Выбрать {type} {name} на холсте","openScenario":"Открыть сценарий {name} на вкладке «Сценарии»","diffSummary":"Добавлено: {added}, удалено: {removed}, изменено: {changed}"},"timeline":{"title":"Временная шкала","region":"Временная шкала прогона","play":"Воспроизвести","previousStep":"Предыдущий шаг","nextStep":"Следующий шаг","toStart":"В начало","toEnd":"В конец","speed":"Скорость воспроизведения: {speed}","channel":"Раскрасить полосы по","channelStatus":"Статусу","channelDuration":"Длительности","channelCoverage":"Покрытию","source":"Показать прогон","sourceInstance":"Экземпляра","sourceScenario":"Прогона сценария","refresh":"Обновить","close":"Закрыть временную шкалу","zoomIn":"Увеличить","zoomOut":"Уменьшить","fit":"Вписать по ширине","resize":"Изменить размер временной шкалы","playhead":"Маркер времени","step":"Шаг {step} из {total}","stepAt":"Шаг {step} из {total}: {name}","beforeStart":"До первого шага","lane":"{name}, посещений: {count}","bar":"{name}, посещение {visit}, {state}, {duration}","merged":"Коротких шагов: {count}","folded":"Свёрнуто {span}","stateCompleted":"Завершён","stateActive":"Выполняется","stateFailed":"С ошибкой","stateTerminated":"Прерван","emptyTitle":"Нет прогона для показа.","emptyHint":"Выберите экземпляр в Мониторинге или запустите сценарий, и его шаги появятся здесь.","loadingTitle":"Читаем прогон…","loadingHint":"Запрашиваем у движка шаги этого экземпляра.","noStepsTitle":"В этом прогоне пока нет шагов.","noStepsHint":"Движок ещё не записал ни одного шага. Обновите чуть позже.","problem":"Не удалось прочитать прогон: {reason}","detailStarted":"Начало","detailEnded":"Конец","detailDuration":"Длительность","detailInstance":"Экземпляр активности","detailVisit":"Посещение","detailIncident":"Инцидент","detailChanged":"Изменённые переменные","detailMocked":"Ответил сценарий","detailNone":"Выберите полосу, чтобы увидеть её шаг.","coverageSummary":"Достигнуто элементов: {covered} из {total}","unvisited":"Не достигнут","runLabel":"Прогон {id}","keysHint":"Влево и вправо - шаг, с Shift - по посещениям строки, с Shift и Вверх или Вниз - смена строки, пробел - воспроизведение, Home и End - к краям, Enter - выбрать элемент, плюс, минус и ноль - масштаб"},"codeBridge":{"ambiguousDetail":"На {name} отвечает больше одного места в коде.","badgeAmbiguous":"{element}: {count} мест в коде подходят под {name}","badgeBound":"{element}: код найден в {where}","badgeMissing":"{element}: код для {name} не найден","cardLabel":"Код элемента {element}","createStub":"Создать заготовку воркера","groupTitle":"Код","kindBean":"Бин","kindClass":"Класс","kindDecision":"Решение","kindJobType":"Тип задания","kindMessage":"Сообщение","kindProcess":"Процесс","kindTopic":"Тема","missingDetail":"В коде проекта ничего не называется {name}.","missingNear":"Ближайшее имя в коде — {near}.","moreCount":"и ещё {count}","notReached":"Ни один прогон тестов сюда не дошёл","openCode":"Открыть код","openDecision":"Открыть решение","openPlace":"Открыть {where}","openProcess":"Открыть процесс","paused":"Отладчик остановлен здесь","reached":"Достигнут прогоном тестов","snippetLoading":"Чтение кода…","snippetUnavailable":"Первые строки здесь недоступны.","stateAmbiguous":"Подходит несколько мест","stateBound":"Код найден","stateMissing":"Код не найден","tests":"Тесты: {count}"},"assistant":{"showDetails":"Показать подробности","card":{"close":"Закрыть","connecting":"Запускаем агента...","expand":"Открыть чат на боковой панели","fold":"Свернуть чат","label":"Последний ход чата","loading":"Загружаем переписку...","unfold":"Развернуть чат","suggest":"Развернуть чат","suggestLong":"Переписка становится длинной.","suggestDocument":"В ответе есть файл.","newChat":"Новый чат"},"change":{"changed":"{name}: {what}","created":"Новый файл {name}","file":"Изменяется {name}","flow":"Поток {from} → {to}","lines":"{name}: +{added} -{removed} строк","moved":"{name} перемещается"},"chats":{"empty":"Чатов пока нет. Начните новый кнопкой +.","label":"Чаты","menu":"Действия с чатом","new":"Новый чат","title":"Чаты","agents":"ИИ-агенты"},"delete":{"accept":"Удалить чат","action":"Удалить","text":"«{title}» и его сообщения будут удалены из этого проекта.","title":"Удалить чат"},"ended":{"text":"Агент завершился без ответа.","title":"Агент завершил работу"},"form":{"title":"Настройки агента","agent":"Агент","agentNew":"Смена агента начнёт новый чат.","manage":"Управление агентами…","back":"Назад"},"input":{"noAgent":"Нет агента","add":"Прикрепить файл или упомянуть элемент","ask":"Спросить агента","settingsLabel":"{agent}: {settings}","optionNextTurn":"Применится со следующего сообщения.","context":"Контекст сообщения","keyEnter":"Enter","keyShiftEnter":"Shift Enter","keyNewline":"новая строка","keyQueue":"в очередь","keySend":"отправить","label":"Сообщение агенту","more":"ещё {count}","placeholder":"Спросите о чём-нибудь или дайте агенту задачу","queued":"Сообщения в очереди","queuedText":"В очереди: {text}","removeChip":"Убрать {name} из сообщения","send":"Отправить","stop":"Остановить","unqueue":"Забрать сообщение из очереди","stateWorking":"Агент работает…","stateWaiting":"Ждём вас","showCard":"Показать переписку"},"mention":{"elements":"Элементы","files":"Файлы","label":"Прикрепить к сообщению","none":"Ничего не найдено.","search":"Поиск элементов и файлов"},"noAgent":{"choose":"Выбрать другого агента","settings":"Настройки агента","text":"На этом компьютере нет ни одного агента. Установите его командой:","title":"Агент не найден"},"question":{"allow":"Разрешить","allowAlways":"Всегда разрешать","clean":"Проверка чистая","deny":"Отклонить","denyAlways":"Всегда отклонять","details":"Показать изменения целиком","label":"Агент просит разрешение","showOnCanvas":"Показать на холсте","undo":"Отмена вернёт всё назад","apply":{"one":"Применить {count} изменение к {file}?","few":"Применить {count} изменения к {file}?","many":"Применить {count} изменений к {file}?","other":"Применить {count} изменения к {file}?"},"files":{"one":"{count} файлу","few":"{count} файлам","many":"{count} файлам","other":"{count} файла"},"problems":{"one":"{count} проблема требует внимания","few":"{count} проблемы требуют внимания","many":"{count} проблем требуют внимания","other":"{count} проблемы требуют внимания"}},"rename":"Переименовать","signIn":"Войти","signedOut":{"text":"Войдите в агент в его собственном приложении и повторите попытку.","title":"{agent}: вход не выполнен"},"state":{"connecting":"запускается","failed":"остановлен с ошибкой","idle":"ожидает","waiting":"ждёт вас","working":"работает"},"switch":{"label":"Переключить чат","list":"Чаты этого проекта"},"tryAgain":"Повторить","unreachable":"Не удалось связаться со службой агента","changeLabel":"Изменения в {name}","diffTooLarge":"Изменение слишком большое, чтобы показать его здесь.","hideXml":"Скрыть XML","showXml":"Показать XML","noVisibleChange":"Рисунок не меняется, меняется только текст файла.","reviewOnCanvas":"Изменение также показано на холсте {name}, пока эта диаграмма открыта.","thinking":"Думает","newChat":"Новый чат","openFile":"Открыть {path}","openAtLine":"Открыть {path} на строке {line}","truncated":"Остальная часть сообщения не показана.","tool":{"pending":"Ожидает","running":"Выполняется","done":"Готово","failed":"Не удалось","stopped":"Остановлено","penstock":{"listDiagrams":"Список диаграмм","showDiagram":"Показать диаграмму","editDiagram":"Изменить диаграмму","checkDiagram":"Проверить диаграмму","analyzeFlow":"Проанализировать поток","listScenarios":"Список сценариев","checkCodeLinks":"Проверить связи с кодом"}},"loose":{"element":"Не показаны призраками (тип элемента не поддерживается): {ids}","attach":"Не показаны призраками (не связаны с существующим элементом): {ids}","scope":"Не показаны призраками (в другом контейнере, чем предыдущий элемент): {ids}","type":"Не показаны призраками (тип элемента меняется): {ids}","reconnect":"Не показаны призраками (поток переподключается): {ids}","resize":"Не показаны призраками (меняется размер элемента): {ids}","property":"Не показаны призраками (свойство, которое так нельзя задать или очистить): {ids}","event":"Не показаны призраками (меняется определение события): {ids}"},"sentence":{"listing":"Получаем список диаграмм","listed":{"one":"Получен {count} файл диаграммы","few":"Получено {count} файла диаграмм","many":"Получено {count} файлов диаграмм","other":"Получено {count} файла диаграмм"},"listedPlain":"Список диаграмм получен","reading":"Читаем {file}","read":"Прочитан {file}","checking":"Проверяем {file}","checked":{"one":"Проверен {file} - {count} проблема","few":"Проверен {file} - {count} проблемы","many":"Проверен {file} - {count} проблем","other":"Проверен {file} - {count} проблемы"},"checkedClean":"Проверен {file} - проблем нет","checkedPlain":"Проверен {file}","analysing":"Анализируем поток в {file}","analysed":{"one":"Поток проанализирован - {count} проблема","few":"Поток проанализирован - {count} проблемы","many":"Поток проанализирован - {count} проблем","other":"Поток проанализирован - {count} проблемы"},"analysedDeadEnds":{"one":"Поток проанализирован - {count} тупик","few":"Поток проанализирован - {count} тупика","many":"Поток проанализирован - {count} тупиков","other":"Поток проанализирован - {count} тупика"},"analysedClean":"Поток проанализирован - проблем нет","analysedPlain":"Поток в {file} проанализирован","scenariosListing":"Получаем сценарии {file}","scenariosListed":{"one":"Получен {count} сценарий","few":"Получено {count} сценария","many":"Получено {count} сценариев","other":"Получено {count} сценария"},"scenariosRan":{"one":"Выполнен {count} сценарий - пройдено: {passed}","few":"Выполнено {count} сценария - пройдено: {passed}","many":"Выполнено {count} сценариев - пройдено: {passed}","other":"Выполнено {count} сценария - пройдено: {passed}"},"scenariosPlain":"Сценарии {file} получены","codeChecking":"Проверяем связи с кодом","codeChecked":{"one":"Связи с кодом проверены - {count} проблема","few":"Связи с кодом проверены - {count} проблемы","many":"Связи с кодом проверены - {count} проблем","other":"Связи с кодом проверены - {count} проблемы"},"codeClean":"Связи с кодом проверены - проблем нет","codePlain":"Связи с кодом проверены","editing":"Изменяем {file}","edited":"Изменён {file}","previewing":"Готовим предпросмотр изменения {file}","previewed":"Предпросмотр изменения {file}","unfinished":"{step} - не удалось завершить","more":"+{count}"},"work":{"steps":{"one":"{count} шаг","few":"{count} шага","many":"{count} шагов","other":"{count} шага"},"label":"Что сделал агент"},"view":{"label":"Вид изменения","picture":"Схема","source":"Исходник","openDiff":"Открыть различия","diffTitle":"Изменения в {name}","sourceLabel":"Исходник изменения","folded":{"one":"{count} строка без изменений","few":"{count} строки без изменений","many":"{count} строк без изменений","other":"{count} строки без изменений"},"showSource":"Показать исходник","applied":{"one":"Изменён {count} элемент","few":"Изменено {count} элемента","many":"Изменено {count} элементов","other":"Изменено {count} элемента"},"appliedFile":"Изменён {file}"},"picker":{"list":"Агенты","missing":"Не установлен","manage":"Управление агентами…","newChat":"Выбор другого агента начинает новый чат."},"chip":{"noElement":"В {file} нет элемента с именем {id}","noFile":"В этом проекте нет файла {file}"},"tab":{"emptyChat":"В этом чате пока нет сообщений.","emptyChatHint":"Напишите ниже, чтобы спросить агента об этом файле.","label":"Чат","transcript":"Переписка","empty":"Спросите агента об этом проекте.","emptyHint":"Изменения, которые он хочет внести, появятся здесь для вашего подтверждения.","unreadable":"Не удалось загрузить этот чат.","unreadableHint":"Возможно, агент остановлен. Повторите чуть позже."},"working":"Работает..."},"agents":{"title":"ИИ-агенты","customDescription":"Ваша собственная команда: {command}","general":"Общие","aiChat":"ИИ-чат","search":"Поиск агентов","list":"Агенты","on":"Включены","all":"Все агенты","allShown":"Все агенты включены.","noneOn":"Нет включённых агентов. Установите один и включите его.","noMatch":"Ни один агент не соответствует поиску.","loading":"Загрузка агентов…","failed":{"title":"Агенты недоступны","hint":"Penstock не удалось прочитать список агентов. Проверьте, что редактор подключён, и повторите попытку."},"state":{"installing":"Установка…","installingPercent":"Установка {percent}%","reading":"Чтение моделей…","failed":"Не удалось установить","update":"Есть обновление","on":"Включён","installed":"Установлен"},"version":"Версия {version}","license":"Лицензия","website":"Сайт","repository":"Исходный код","status":"Состояние","via":{"path":"Найден в PATH","download":"Установлен Penstock","package":"Подготовлен Penstock","custom":"Ваша собственная команда"},"how":{"binary":"Не установлен. Penstock скачает его для этого компьютера и сверит загрузку с контрольной суммой реестра.","npx":"Не установлен. Запускается через npx, который загрузит его при первом использовании.","uvx":"Не установлен. Запускается через uvx, который загрузит его при первом использовании.","custom":"Ваша собственная команда"},"cannotInstall":"Не установлен. Penstock не может установить его на этот компьютер.","install":"Установить","tryAgain":"Повторить","update":"Обновить","turnOn":"Включить","turnOff":"Выключить","uninstall":"Удалить","byHand":"Чтобы установить вручную, выполните","models":"Модели и параметры","modelsRefresh":"Обновить модели","modelsReading":"Запрос к агенту…","modelsEmpty":"Модели ещё не считаны.","modelsEmptyHint":"Обновление моделей запускает агента, спрашивает, какие модели он предлагает, и снова закрывает его. Агент должен быть авторизован.","modelsOwn":"Выбор самого агента ({value})","modelsRead":"Считано {time}","signInHint":"Войдите с помощью собственного инструмента агента, например запустив его один раз в терминале, и обновите снова.","updating":"Обновление списка…","neverUpdated":"Список ещё не обновлялся.","updatedSnapshot":"Список из комплекта Penstock, {time}","updated":"Список обновлён {time}","refresh":"Обновить список","blocked":{"node":"Требуется Node.js, которого нет на этом компьютере.","nodeLink":"Скачать Node.js","uv":"Требуется uv, которого нет на этом компьютере.","uvLink":"Скачать uv","platform":"Для этого компьютера нет загрузки.","checksum":"Реестр не даёт контрольной суммы для этой загрузки, поэтому Penstock её не устанавливает. Установите вручную, и Penstock найдёт её в PATH."},"reason":{"tooLarge":"Ответ оказался больше допустимого.","timeout":"Сервер не ответил вовремя.","offline":"Не удалось связаться с сервером.","http":"Сервер ответил ошибкой:","badList":"Ответ не был списком агентов.","notKept":"Penstock не смог сохранить список на этом компьютере:","archiveTooLarge":"Загрузка распаковывается в больший объём, чем допустимо.","badArchive":"Загрузка не является допустимым архивом.","unsafeArchive":"В загрузке есть файл за пределами её папки, поэтому Penstock остановился:","noTar":"Для распаковки этой загрузки Penstock нужна программа tar, но она недоступна:","cancelled":"Отменено.","noNode":"Node.js нет на этом компьютере.","npmFailed":"npm не удалось получить пакет:","checksum":"Загрузка не совпадает с контрольной суммой реестра, поэтому Penstock её удалил.","noProgram":"В загрузке нет программы:","notInstallable":"Penstock не устанавливает этого агента.","busy":"Установка ещё выполняется.","notInstalled":"Установите агента, прежде чем включать его.","noOptions":"Агент не предложил ни моделей, ни параметров.","noHostPage":"У этого хоста нет страницы для ИИ-агентов.","installFailed":"Не удалось установить агента:","unknown":"Что-то пошло не так."},"aiChatOff":"Выключено","aiChatBottom":"Внизу редактора","aiChatSidebar":"На боковой панели","aiChatOffHelp":"Без поля ввода, чатов и процесса агента: агент не запускается.","aiChatBottomHelp":"Поле ввода внизу редактора, над ним карточка беседы.","aiChatSidebarHelp":"Беседа во вкладке «Чат» боковой панели; внизу поля ввода нет."},"scriptTab":{"title":"{name} - {what}","nameWithId":"{name} ({id})","script":"скрипт","condition":"условие","executionListener":"слушатель {event}","taskListener":"слушатель задачи {event}","input":"вход {name}","output":"выход {name}"},"feel":{"debug":{"action":"Отладить выражение","breakpoint":{"otherFile":"Точки останова можно ставить только в отлаживаемом выражении","pastEnd":"Эта строка после конца выражения"},"error":"Ошибка: {message}","group":{"after":"Переменные после скрипта","current":"Текущее","evaluated":"Вычислено","iteration":"Переменные итерации","variables":"Переменные"},"request":{"unsupported":"Отладчик пока не поддерживает {command}"},"stack":{"name":"Выражение"},"title":"Отладка FEEL: {name}","truncated":"Трассировка остановилась после {count} шагов, остальная часть выражения не пройдена по шагам","type":{"name":"Отладка выражения FEEL"},"unsupported":"Отладчик пока не поддерживает эту конструкцию (символ {at})","launch":{"invalid":"Конфигурации отладки нужны выражение, примеры значений и источник"},"notStarted":"Выражение сейчас не отлаживается"},"problem":{"doubleEquals":"FEEL сравнивает через =, а не ==","spacedName":"Имя с пробелами нужно заключить в обратные кавычки","unclosedBracket":"Эта скобка так и не закрыта","missingElse":"Для if нужен else","endsTooEarly":"Выражение обрывается слишком рано","unexpectedToken":"Здесь это не ожидается","unterminatedString":"Эта строка так и не закрыта","notFeel":"Это не выражение FEEL"},"fix":{"replace":"Заменить на {text}"},"run":{"lens":"Выполнить выражение","channel":"Penstock FEEL","input":"{name} = {value}","result":"Результат из {source}: {value}","warning":"{text} даёт предупреждение: {type}","engineWarning":"Предупреждение: {message}","rejected":"Не выполнено: {message}","failed":"Движок не смог выполнить выражение: {problem}","noEngine":"Движок Camunda 8 не подключён, поэтому выражение выполнено в редакторе (предпросмотр).","inline":"→ {value}","error":"Не удалось запустить выражение: {message}","inlineFailed":"✕ {message}","sample":{"prompt":"Пример значения для {name}","rejected":"Значение {name} не является корректным FEEL: {problem}","warned":"Значение {name} ссылается на имя, у которого нет значения","invalidJson":"Значение {name} — не JSON и не выражение FEEL"}},"source":{"preview":"предпросмотр","engine":"движок"}},"clientFacts":{"sentence":{"notFound":"Воркеры на Python, Go, C# и Scala не читаются, потому что командная строка Penstock не найдена.","incompatible":"Воркеры на Python, Go, C# и Scala не читаются, потому что командная строка Penstock слишком старая для этого редактора.","untrusted":"Воркеры на Python, Go, C# и Scala не читаются, пока этому проекту не доверяют.","failed":"Воркеры на Python, Go, C# и Scala не читаются, потому что командная строка Penstock завершилась с ошибкой.","timedOut":"Воркеры на Python, Go, C# и Scala не читаются, потому что командная строка Penstock отвечала слишком долго.","tooLarge":"Воркеры на Python, Go, C# и Scala не читаются, потому что в проекте слишком много их файлов."},"hint":{"install":"Установите командную строку Penstock командой npm install -g @kern0x1b/penstock-cli или укажите путь к ней в настройках Penstock.","trust":"Доверьте проекту, чтобы он использовал собственную командную строку.","check":"Проверьте командную строку Penstock в терминале командой penstock facts, затем снова откройте диаграмму.","fewerFiles":"Храните код этих языков в меньшем числе файлов или уберите их из проекта."}}}'),t=JSON.parse(`{"Example data":"Пример данных"," + shift + ":" + shift + "," + x + ":" + x + "," or ":" или ","\\"Expression\\" defines options that are populated from a FEEL expression.":"\\"Выражение\\" задаёт варианты, которые заполняются из выражения FEEL.","\\"Input data\\" defines options that are populated dynamically, adjusting based on variable data for flexible responses to different conditions or inputs.":"\\"Входные данные\\" задают варианты, которые заполняются динамически и подстраиваются под данные переменных, чтобы гибко реагировать на разные условия и входные данные.","\\"List of items\\" defines a constant, predefined set of form options.":"\\"Список элементов\\" задаёт постоянный заранее заданный набор вариантов формы.","\\"Static\\" defines a constant, predefined set of form options.":"\\"Статический\\" задаёт постоянный заранее заданный набор вариантов формы.","\\"value\\"":"\\"значение\\"","\\"value\\", \\"value\\", ...":"\\"значение\\", \\"значение\\", ...",") to identify the error. ":") для опознания ошибки. ",") to match a specific error, or leave empty to catch any error. ":") чтобы поймать конкретную ошибку, или оставьте пустым, чтобы поймать любую ошибку. ","+n+":"+n+","1 hour and 30 minutes":"1 час 30 минут","14 days":"14 дней","15 seconds":"15 секунд","<custom type>":"<свой тип>","<empty>":"<пусто>","<none>":"<нет>","<unnamed>":"<без имени>","A FEEL expression that determines whether the event should trigger. ":"Выражение FEEL, которое определяет, должно ли событие сработать. ","A comma-separated list of":"Список через запятую:","A cycle defined as ISO 8601 repeating intervals format, or a cron expression.":"Цикл в формате повторяющихся интервалов ISO 8601 или выражение cron.","A cycle defined as ISO 8601 repeating intervals format.":"Цикл в формате повторяющихся интервалов ISO 8601.","A new version of the template is available: {templateVersion}":"Доступна новая версия шаблона: {templateVersion}","A number is required.":"Требуется число.","A source is a JSON object containing metadata for a document or an array of documents.":"Источник — это объект JSON с метаданными документа или массива документов.","A specific point in time defined as ISO 8601 combined date and time representation.":"Конкретный момент времени в объединённом представлении даты и времени ISO 8601.","A time duration defined as ISO 8601 durations format.":"Длительность в формате длительностей ISO 8601.","A version of this template is available that supports your environment: {templateVersion}":"Доступна версия этого шаблона, которая поддерживает вашу среду: {templateVersion}","About conditional events.":"Об условных событиях.","Action":"Действие","Activate create/remove space tool":"Включить инструмент создания и удаления пространства","Activate global connect tool":"Включить глобальный инструмент соединения","Activate hand tool":"Включить инструмент «Рука»","Activate lasso tool":"Включить инструмент «Лассо»","Active elements":"Активные элементы","Active elements collection":"Коллекция активных элементов","Activity reference":"Ссылка на действие","Ad-hoc sub-process":"Подпроцесс по требованию","Ad-hoc sub-process (collapsed)":"Подпроцесс по требованию (свёрнутый)","Ad-hoc sub-process (expanded)":"Подпроцесс по требованию (развёрнутый)","Ad-hoc subprocess documentation":"Документация: подпроцесс по требованию","Add cell description":"Добавить описание ячейки","Add custom key-value metadata to this element. Extension properties have no effect on process execution — they can be used to attach configuration visible for other consumers of the BPMN diagram. ":"Добавьте к этому элементу свои метаданные в виде пар ключ-значение. Свойства расширения не влияют на выполнение процесса — их можно использовать, чтобы приложить настройки, видимые другим потребителям диаграммы BPMN. ","Add custom logic that reacts to various events in the workflow execution life-cycle. ":"Добавьте свою логику, которая реагирует на разные события жизненного цикла рабочего процесса. ","Add input":"Добавить вход","Add input column left":"Добавить столбец входов слева","Add input column right":"Добавить столбец входов справа","Add input mappings to control what is passed to the activity as local variables. ":"Добавьте сопоставления входов, чтобы задать, что передаётся в действие как локальные переменные. ","Add lane above":"Добавить дорожку сверху","Add lane below":"Добавить дорожку снизу","Add new":"Добавить","Add output":"Добавить выход","Add output column left":"Добавить столбец выходов слева","Add output column right":"Добавить столбец выходов справа","Add output mappings to control which variables are merged back into the process scope. ":"Добавьте сопоставления выходов, чтобы задать, какие переменные сливаются обратно в область процесса. ","Add parameter":"Добавить параметр","Add pause point":"Добавить точку паузы","Add predefined values":"Добавить заранее заданные значения","Add properties directly to the form schema, useful to configure functionality in custom-built task applications and form renderers.":"Добавляйте свойства прямо в схему формы: это помогает настраивать поведение в собственных приложениях задач и отрисовщиках форм.","Add rule":"Добавить правило","Add rule above":"Добавить правило выше","Add rule below":"Добавить правило ниже","Add text annotation":"Добавить текстовую аннотацию","Add values":"Добавить значения","Additional details are optional. The expected format is as follows:":"Дополнительные сведения необязательны. Ожидаемый формат:","After":"После","Align elements":"Выровнять элементы","Align elements ":"Выровнять элементы ","All values selected":"Выбраны все значения","Allow add/delete items":"Разрешить добавлять и удалять элементы","Allow same origin":"Тот же источник","Allow the iframe to access more functionality of your browser, details regarding the various options can be found in the":"Разрешить iframe обращаться к большему числу возможностей браузера, подробности о каждом параметре можно найти в","Allowed answers":"Допустимые ответы","Allows arbitrary precision values":"Разрешает значения с произвольной точностью","Alternative text":"Альтернативный текст","And":"И","Annotation":"Аннотация","Annotations":"Аннотации","Any":"Любая","Appearance":"Вид","Append business knowledge model":"Добавить модель бизнес-знаний","Append compensation activity":"Добавить действие компенсации","Append conditional intermediate catch event":"Добавить условное промежуточное событие-ловушку","Append decision":"Добавить решение","Append element":"Добавить элемент","Append end event":"Добавить событие завершения","Append gateway":"Добавить шлюз","Append input data":"Добавить входные данные","Append intermediate/boundary event":"Добавить промежуточное или граничное событие","Append knowledge source":"Добавить источник знаний","Append message intermediate catch event":"Добавить промежуточное событие-ловушку сообщения","Append receive task":"Добавить задачу приёма","Append signal intermediate catch event":"Добавить промежуточное событие-ловушку сигнала","Append task":"Добавить задачу","Append timer intermediate catch event":"Добавить промежуточное событие-ловушку таймера","Applied":"Применено","Assign to process variable":"Задать переменной процесса","Assignee":"Исполнитель","Assignment":"Назначение","Assignment type":"Тип назначения","Association":"Ассоциация","Asynchronous after":"Асинхронно после","Asynchronous before":"Асинхронно перед","Asynchronous continuations":"Асинхронные продолжения","Auto":"Авто","BPMN":"BPMN","Before":"До","Between":"Между","Binding":"Привязка","Binds to a form variable":"Привязывается к переменной формы","Boolean value":"Логическое значение","Bottom":"Снизу","Boundary Event":"Граничное событие","Boundary event":"Граничное событие","Build your form":"Соберите свою форму","Business ID":"Идентификатор бизнес-процесса","Business ID propagation documentation":"Документация: передача идентификатора бизнес-процесса","Business Rule Task":"Задача бизнес-правил","Business key":"Ключ бизнес-процесса","Business key expression":"Выражение ключа бизнес-процесса","Business rule task":"Задача бизнес-правил","Business rule task documentation":"Документация: задача бизнес-правил","Button":"Кнопка","CMMN":"CMMN","Call Activity":"Задача вызова","Call activity":"Задача вызова","Call activity documentation":"Документация: задача вызова","Called decision":"Вызываемое решение","Called decision documentation":"Документация: вызываемое решение","Called element":"Вызываемый элемент","Camera access":"Доступ к камере","Camunda Form":"Camunda Form","Camunda Form (embedded)":"Camunda Form (встроенная)","Camunda Form (linked)":"Camunda Form (подключённая)","Camunda Forms":"Camunda Forms","Camunda user task":"Задача пользователя Camunda","Cancel Boundary Event":"Граничное событие отмены","Cancel End Event":"Событие завершения отмены","Cancel Intermediate Catch Event":"Промежуточное событие-ловушка отмены","Cancel boundary event":"Граничное событие отмены","Cancel end event":"Событие завершения отмены","Cancel remaining instances":"Отменить остальные экземпляры","Candidate groups":"Кандидаты-группы","Candidate starter":"Кандидат на запуск","Candidate starter groups":"Кандидаты-группы на запуск","Candidate starter users":"Кандидаты-пользователи на запуск","Candidate users":"Кандидаты-пользователи","Cannot exceed {maxLength} characters.":"Не больше {maxLength} символов.","Case ref":"Ссылка на кейс","Center":"По центру","Change":"Изменить","Change cell expression language":"Сменить язык выражений ячейки","Change element":"Изменить элемент","Change type":"Изменить тип","Checkbox":"Флажок","Checkbox group":"Группа флажков","Checked":"Отмечено","Choose element template":"Выберите шаблон элемента","Choose {configuration}":"Выберите {configuration}","Class":"Класс","Clear content":"Очистить содержимое","Clear predefined values":"Очистить заранее заданные значения","Click to remove dynamic value with FEEL expression":"Нажмите, чтобы убрать динамическое значение с выражением FEEL","Click to remove sorting":"Щёлкните, чтобы убрать сортировку","Click to set a dynamic value with FEEL expression":"Нажмите, чтобы задать динамическое значение с выражением FEEL","Click to sort by {value} ascending":"Щёлкните, чтобы отсортировать по {value} по возрастанию","Click to sort by {value} descending":"Щёлкните, чтобы отсортировать по {value} по убыванию","Close":"Закрыть","Close minimap":"Закрыть миникарту","Code":"Код","Code variable":"Переменная кода","Collaboration":"Взаимодействие","Collapse":"Свернуть","Collapsed Ad Hoc Sub Process":"Свёрнутый подпроцесс по требованию","Collapsed Sub Process":"Свёрнутый подпроцесс","Collect":"Сбор","Collect (Count)":"Сбор (количество)","Collect (Max)":"Сбор (максимум)","Collect (Min)":"Сбор (минимум)","Collect (Sum)":"Сбор (сумма)","Collection":"Коллекция","Collects the values of all matching rules":"Собирает значения всех сработавших правил","Collects the values of all matching rules and counts the number of them":"Собирает значения всех сработавших правил и считает их количество","Collects the values of all matching rules and sums up to a single value":"Собирает значения всех сработавших правил и складывает их в одно значение","Collects the values of all matching rules and uses the highest value":"Собирает значения всех сработавших правил и берёт наибольшее","Collects the values of all matching rules and uses the lowest value":"Собирает значения всех сработавших правил и берёт наименьшее","Collects the values of all matching rules in decreasing output priority order":"Собирает значения всех сработавших правил по убыванию приоритета выходов","Collects the values of all matching rules in rule order":"Собирает значения всех сработавших правил в порядке правил","Column":"Столбец","Column {index}":"Столбец {index}","Columns":"Столбцы","Comparison":"Сравнение","Comparison operator":"Оператор сравнения","Compensate Boundary Event":"Граничное событие компенсации","Compensate End Event":"Событие завершения компенсации","Compensate Intermediate Catch Event":"Промежуточное событие-ловушка компенсации","Compensate Intermediate Throw Event":"Промежуточное событие-отправка компенсации","Compensate Start Event":"Стартовое событие компенсации","Compensation":"Компенсация","Compensation boundary event":"Граничное событие компенсации","Compensation end event":"Событие завершения компенсации","Compensation intermediate throw event":"Промежуточное событие-отправка компенсации","Compensation start event":"Стартовое событие компенсации","Completion":"Завершение","Completion condition":"Условие завершения","Complex Gateway":"Составной шлюз","Complex gateway":"Составной шлюз","Components":"Компоненты","Compute on":"Вычислять по","Condition":"Условие","Condition Expression":"Выражение условия","Condition expression":"Выражение условия","Condition under which the field is deactivated":"Условие, при котором поле отключается","Condition under which the field is hidden":"Условие, при котором поле скрывается","Conditional Boundary Event":"Условное граничное событие","Conditional Boundary Event (Non Interrupting)":"Условное граничное событие (непрерывающее)","Conditional Flow":"Условный поток","Conditional Intermediate Catch Event":"Условное промежуточное событие-ловушка","Conditional Intermediate Catch Event (Non Interrupting)":"Условное промежуточное событие-ловушка (непрерывающее)","Conditional Start Event":"Условное стартовое событие","Conditional Start Event (Non Interrupting)":"Условное стартовое событие (непрерывающее)","Conditional boundary event":"Условное граничное событие","Conditional boundary event (non-interrupting)":"Условное граничное событие (непрерывающее)","Conditional event documentation":"Документация: условное событие","Conditional flow":"Условный поток","Conditional intermediate catch event":"Условное промежуточное событие-ловушка","Conditional start event":"Условное стартовое событие","Conditional start event (non-interrupting)":"Условное стартовое событие (непрерывающее)","Conditions documentation":"Документация: условия","Config":"Конфигурация","Configuration":"Конфигурация","Configuration not found":"Конфигурация не найдена","Configurations":"Конфигурации","Configure the message that the task waits for. ":"Настройте сообщение, которого ждёт задача. ","Configure the message that this event waits for. ":"Настройте сообщение, которого ждёт это событие. ","Configure the message that will start this process instance. ":"Настройте сообщение, которое запустит этот экземпляр процесса. ","Configure the message that will trigger this boundary event. ":"Настройте сообщение, которое вызовет это граничное событие. ","Connect to other element":"Соединить с другим элементом","Connect using association":"Соединить ассоциацией","Connect using data input association":"Соединить ассоциацией входа данных","Connector":"Коннектор","Connector ID":"Идентификатор коннектора","Connector inputs":"Входы коннектора","Connector outputs":"Выходы коннектора","Constraints":"Ограничения","Containers":"Контейнеры","Content":"Содержимое","Control the business ID set on a child process. If left empty, no business ID will be set. ":"Управляйте идентификатором бизнес-процесса, который задаётся дочернему процессу. Если поле пустое, идентификатор не задаётся. ","Control which variables from the called process are merged back into the parent scope. By default, all child variables are propagated; use output mappings to selectively return specific variables. ":"Управляйте тем, какие переменные вызываемого процесса сливаются обратно в родительскую область. По умолчанию передаются все дочерние переменные, а сопоставления выходов позволяют вернуть только нужные. ","Copy input column":"Копировать столбец входов","Copy output column":"Копировать столбец выходов","Copy rule":"Копировать правило","Could not load configurations":"Не удалось загрузить конфигурации","Create":"Создать","Create data object reference":"Создать ссылку на объект данных","Create data store reference":"Создать ссылку на хранилище данных","Create decision":"Создать решение","Create decision service":"Создать сервис решений","Create element":"Создать элемент","Create end event":"Создать событие завершения","Create expanded sub-process":"Создать развёрнутый подпроцесс","Create gateway":"Создать шлюз","Create group":"Создать группу","Create input data":"Создать входные данные","Create intermediate/boundary event":"Создать промежуточное или граничное событие","Create knowledge model":"Создать модель знаний","Create knowledge source":"Создать источник знаний","Create new ...":"Создать новый ...","Create new list item":"Создать новый элемент списка","Create pool/participant":"Создать пул или участника","Create start event":"Создать стартовое событие","Create task":"Создать задачу","Create {label} element":"Создать элемент «{label}»","Created in":"Создано в","Custom":"Свой","Custom error message":"Своё сообщение об ошибке","Custom form key":"Свой ключ формы","Custom properties":"Свои свойства","Custom regular expression":"Своё регулярное выражение","Custom type":"Свой тип","Custom values":"Свои значения","Cut input column":"Вырезать столбец входов","Cut output column":"Вырезать столбец выходов","Cut rule":"Вырезать правило","Cycle":"Цикл","DMN":"DMN","DMN decision":"Решение DMN","Data Input":"Вход данных","Data Input Association":"Ассоциация входа данных","Data Object Reference":"Ссылка на объект данных","Data Output":"Выход данных","Data Output Association":"Ассоциация выхода данных","Data Store Reference":"Ссылка на хранилище данных","Data object must be placed within a pool/participant.":"Объект данных должен находиться внутри пула или участника.","Data object reference":"Ссылка на объект данных","Data source":"Источник данных","Data store reference":"Ссылка на хранилище данных","Date":"Дата","Date and time":"Дата и время","Date and time must both be entered.":"Нужно указать и дату, и время.","Date and time value":"Значение даты и времени","Date label":"Подпись даты","Date time":"Дата и время","Date value":"Значение даты","Deactivate if":"Отключить, если","Decimal digits":"Знаков после запятой","Decision ID":"Идентификатор решения","Decision name":"Имя решения","Decision name: ":"Имя решения: ","Decision reference":"Ссылка на решение","Decision table":"Таблица решений","Decrement":"Уменьшить","Default Flow":"Поток по умолчанию","Default flow":"Поток по умолчанию","Default number of items":"Число элементов по умолчанию","Default value":"Значение по умолчанию","Define a boolean condition expression that determines when this sequence flow is taken. ":"Задайте булево выражение условия, которое определяет, когда берётся этот поток управления. ","Define a collection of elements which will be activated when the ad-hoc subprocess is reached. ":"Задайте коллекцию элементов, которые активируются при достижении подпроцесса по требованию. ","Define an expression to calculate the value of this field":"Задайте выражение для вычисления значения этого поля","Define an expression to populate the options from.":"Задайте выражение, из которого заполняются варианты.","Define an input collection expression that defines the collection to iterate over (e.g. ":"Задайте выражение входной коллекции, которое задаёт коллекцию для перебора (например, ","Define how to collect the outputs of the ad-hoc subprocess. The output collection variable stores the list of results; the output element expression defines what each element contributes. ":"Задайте, как собирать выходы подпроцесса по требованию. Переменная выходной коллекции хранит список результатов, а выражение выходного элемента задаёт, что добавляет каждый элемент. ","Define static metadata passed to job workers alongside each job. Headers are not evaluated by the engine — use them for fixed worker configuration (e.g. ":"Задайте статические метаданные, которые передаются воркерам заданий вместе с каждым заданием. Движок не вычисляет заголовки, используйте их для фиксированной настройки воркера (например, ","Define the FEEL expression to evaluate and the variable to store the result in. ":"Задайте выражение FEEL для вычисления и переменную, в которой сохранится результат. ","Define the ID of the process to call (e.g. ":"Задайте идентификатор вызываемого процесса (например, ","Define the assignment, schedule, and priority of the user task. Assignee, candidate groups, and candidate users can be combined. Use due date and follow-up date to express deadlines and urgency. ":"Задайте назначение, сроки и приоритет задачи пользователя. Исполнителя, кандидатов-группы и кандидатов-пользователей можно сочетать. Срок выполнения и срок напоминания задают дедлайн и срочность. ","Define the completion behavior of an ad-hoc subprocess. If no completion condition is set, it will be completed after all active elements have been completed. ":"Задайте поведение при завершении подпроцесса по требованию. Если условие завершения не задано, он завершится после того, как завершатся все активные элементы. ","Define the decision to evaluate and how to map back the evaluation result. ":"Задайте вычисляемое решение и то, как сопоставить результат вычисления обратно. ","Define the error to catch. Specify an error code (e.g. ":"Задайте ошибку, которую нужно поймать. Укажите код ошибки (например, ","Define the error to throw. Specify an error code (e.g. ":"Задайте ошибку, которую нужно выбросить. Укажите код ошибки (например, ","Define the name of the variable that will contain the error code.":"Задайте имя переменной, в которой будет код ошибки.","Define the name of the variable that will contain the error message.":"Задайте имя переменной, в которой будет сообщение об ошибке.","Define the name of the variable that will contain the escalation code.":"Задайте имя переменной, в которой будет код эскалации.","Define which input property to populate the values from":"Задайте входное свойство, из которого заполняются значения","Definition ID":"Идентификатор определения","Definition name":"Имя определения","Delegate Class":"Класс делегата","Delegate Expression":"Выражение делегата","Delegate Variable Mapping":"Сопоставление переменных делегата","Delegate expression":"Выражение делегата","Delete":"Удалить","Delete item":"Удалить элемент","Deployment binding":"Привязка к развёртыванию","Deprecated":"Устарело","Description":"Описание","Descriptive text for screen reader accessibility.":"Описательный текст для программ чтения с экрана.","Disable collapse":"Запретить сворачивание","Disable this field when it should not be interactive for end-users. Its data will not be submitted. This setting takes precedence over read-only.":"Отключите это поле, когда оно не должно быть доступно пользователю. Его данные не отправляются. Эта настройка важнее режима только для чтения.","Disabled":"Отключено","Disallow past dates":"Запрещать прошедшие даты","Distribute elements horizontally":"Распределить элементы по горизонтали","Distribute elements vertically":"Распределить элементы по вертикали","Divide into three lanes":"Разделить на три дорожки","Divide into two lanes":"Разделить на две дорожки","Document preview":"Предпросмотр документа","Document reference":"Ссылка на документ","Document reference is not defined.":"Ссылка на документ не задана.","Documentation":"Документация","Documentation: Timer events":"Документация: события-таймеры","Documentation: Variable events":"Документация: события с переменными","Download {fileName}":"Скачать {fileName}","Drag and drop components here to start designing.":"Перетащите сюда компоненты, чтобы начать проектирование.","Drag and drop components here.":"Перетащите сюда компоненты.","Due date":"Срок выполнения","Duration":"Длительность","Duration value":"Значение длительности","Dynamic list":"Динамический список","Dynamic options":"Динамические варианты","Each entry must include a document ID, name, and MIME type.":"Каждая запись должна содержать идентификатор документа, имя и тип MIME.","Edit":"Изменить","Edit boolean":"Изменить логическое значение","Edit date":"Изменить дату","Edit date and time":"Изменить дату и время","Edit duration":"Изменить длительность","Edit end date":"Изменить дату окончания","Edit end date and time":"Изменить дату и время окончания","Edit end time":"Изменить время окончания","Edit formal parameters":"Изменить формальные параметры","Edit function kind":"Изменить вид функции","Edit input":"Изменить вход","Edit number":"Изменить число","Edit output":"Изменить выход","Edit start date":"Изменить дату начала","Edit start date and time":"Изменить дату и время начала","Edit start time":"Изменить время начала","Edit string":"Изменить строку","Edit time":"Изменить время","Editing not supported for set expression language":"Правка не поддерживается для множественного языка выражений","Element documentation":"Документация элемента","Element name":"Имя элемента","Element variable":"Переменная элемента","Email":"Электронная почта","Embedded or External Task Forms":"Встроенные и внешние формы задач","Empty":"Пустой","Empty pool/participant":"Пустой пул или участник","End Event":"Событие завершения","End date":"Дата окончания","End date and time":"Дата и время окончания","End event":"Событие завершения","End time":"Время окончания","End value":"Конечное значение","Enter a HTTPS URL to a source or populate it dynamically via a template or an expression (e.g., to pass a value from the variable).":"Укажите HTTPS-URL источника или заполняйте его динамически через шаблон или выражение (например, чтобы передать значение из переменной).","Enter a form input variable that contains the data for the table or define an expression to populate the data dynamically.":"Укажите входную переменную формы с данными для таблицы или задайте выражение, которое заполняет данные динамически.","Enter expression":"Введите выражение","Equals":"Равно","Error":"Ошибка","Error Boundary Event":"Граничное событие ошибки","Error End Event":"Событие завершения ошибки","Error Intermediate Catch Event":"Промежуточное событие-ловушка ошибки","Error Start Event":"Стартовое событие ошибки","Error boundary event":"Граничное событие ошибки","Error end event":"Событие завершения ошибки","Error event documentation":"Документация: событие ошибки","Error start event":"Стартовое событие ошибки","Errors":"Ошибки","Escalation":"Эскалация","Escalation Boundary Event":"Граничное событие эскалации","Escalation Boundary Event (Non Interrupting)":"Граничное событие эскалации (непрерывающее)","Escalation End Event":"Событие завершения эскалации","Escalation Intermediate Catch Event":"Промежуточное событие-ловушка эскалации","Escalation Intermediate Catch Event (Non Interrupting)":"Промежуточное событие-ловушка эскалации (непрерывающее)","Escalation Intermediate Throw Event":"Промежуточное событие-отправка эскалации","Escalation Start Event":"Стартовое событие эскалации","Escalation Start Event (Non Interrupting)":"Стартовое событие эскалации (непрерывающее)","Escalation boundary event":"Граничное событие эскалации","Escalation boundary event (non-interrupting)":"Граничное событие эскалации (непрерывающее)","Escalation end event":"Событие завершения эскалации","Escalation intermediate throw event":"Промежуточное событие-отправка эскалации","Escalation start event":"Стартовое событие эскалации","Escalation start event (non-interrupting)":"Стартовое событие эскалации (непрерывающее)","Evaluate a business rule, for example a DMN decision. To add a custom implementation, use a job worker. ":"Вычисляет бизнес-правило, например решение DMN. Чтобы добавить свою реализацию, напишите воркер заданий. ","Event Based Gateway":"Шлюз по событиям","Event Sub Process":"Подпроцесс по событию","Event based instantiating Gateway":"Шлюз по событиям с созданием экземпляра","Event sub-process":"Подпроцесс по событию","Event type":"Тип события","Event-based gateway":"Шлюз по событиям","Exactly":"Равно","Exclude":"Исключить","Exclusive":"Исключительно","Exclusive Gateway":"Исключающий шлюз","Exclusive gateway":"Исключающий шлюз","Executable":"Запускаемый","Execute this task for each element of a given collection. ":"Выполняет эту задачу для каждого элемента указанной коллекции. ","Execution listeners":"Слушатели исполнения","Execution listeners documentation":"Документация: слушатели исполнения","Expand all ({value})":"Развернуть все ({value})","Expanded Ad Hoc Sub Process":"Развёрнутый подпроцесс по требованию","Expanded Sub Process":"Развёрнутый подпроцесс","Expanded pool/participant":"Развёрнутый пул или участник","Expression":"Выражение","Expression language":"Язык выражений","Expression language:":"Язык выражений:","Expression language: {expressionLanguageLabel}":"Язык выражений: {expressionLanguageLabel}","Expression or static value (link/data URI)":"Выражение или статическое значение (ссылка или data URI)","Extension properties":"Свойства расширения","External":"Внешняя","External content couldn't be loaded.":"Не удалось загрузить внешнее содержимое.","External form reference":"Внешняя ссылка на форму","External resource":"Внешний ресурс","External task":"Внешняя задача","Fast":"быстро","FEEL expression":"Выражение FEEL","FEEL expression is mandatory":"Выражение FEEL обязательно","Field cannot exceed {maxLength} characters.":"Поле не может быть длиннее {maxLength} символов.","Field description":"Описание поля","Field injection":"Внедрение поля","Field injections":"Внедрения полей","Field is required.":"Поле обязательно.","Field must be a valid email.":"Поле должно содержать корректный адрес электронной почты.","Field must be a valid international phone number. (e.g. +4930664040900)":"Поле должно содержать корректный международный номер телефона. (например, +4930664040900)","Field must be at least {minLength} characters.":"Поле должно содержать не меньше {minLength} символов.","Field must have maximum length of {value}.":"Максимальная длина поля — {value}.","Field must have maximum value of {value}.":"Максимальное значение поля — {value}.","Field must have minimum length of {value}.":"Минимальная длина поля — {value}.","Field must have minimum value of {value}.":"Минимальное значение поля — {value}.","Field must match pattern {value}.":"Поле должно соответствовать шаблону {value}.","File picker":"Выбор файла","Finished":"Завершено","First":"Первая","Focus process instance {id}":"Показать экземпляр процесса {id}","Focus process instance {scopeId}":"Показать экземпляр процесса {scopeId}","Follow up date":"Срок напоминания","For security reasons the URL must start with \\"https\\".":"По соображениям безопасности URL должен начинаться с \\"https\\".","Form":"Форма","Form ID":"Идентификатор формы","Form JSON configuration":"Конфигурация формы в JSON","Form fields":"Поля формы","Form key":"Ключ формы","Form reference":"Ссылка на форму","Form submission":"Отправка формы","Format":"Формат","Forms":"Формы","Forms submission":"Отправка форм","Found unsupported elements":"Найдены неподдерживаемые элементы","Function kind: {kind}":"Вид функции: {kind}","Gateway":"Шлюз","General":"Общее","Generated Task Forms":"Сгенерированные формы задач","Geolocation":"Геолокация","Global error reference":"Глобальная ссылка на ошибку","Global escalation reference":"Глобальная ссылка на эскалацию","Global message reference":"Глобальная ссылка на сообщение","Global signal reference":"Глобальная ссылка на сигнал","Greater":"Больше","Greater or equals":"Больше или равно","Group":"Группа","HELLO {you}":"ПРИВЕТ {you}","HTML view":"HTML-вид","Header items":"Элементы заголовка","Headers":"Заголовки","Headers source":"Источник заголовков","Height":"Высота","Height of the container in pixels.":"Высота контейнера в пикселях.","Hide if":"Скрыть, если","History cleanup":"Очистка истории","Hit policy":"Политика попаданий","Hit policy:":"Политика попаданий","How to configure a timer":"Как настроить таймер","Html view is empty":"HTML-представление пустое","Html view is populated by an expression":"HTML-представление заполняется выражением","Html view is templated":"HTML-представление задано шаблоном","ID":"ID","ID must be a valid QName.":"ID должен быть корректным QName.","ID must be unique.":"ID должен быть уникальным.","ID must not be empty.":"ID не должен быть пустым.","ID must not contain prefix.":"ID не должен содержать префикс.","ID must not contain spaces.":"ID не должен содержать пробелы.","Identifier computed from the process context that is used to correlate an incoming message (e.g. ":"Идентификатор, вычисляемый из контекста процесса, по которому сопоставляется входящее сообщение (например, ","If turned on, all variables from the child process instance will be propagated to the parent process instance.":"Если включено, все переменные из экземпляра дочернего процесса передаются в экземпляр родительского процесса.","If turned on, all variables from the parent process instance will be propagated to the child process instance.":"Если включено, все переменные из экземпляра родительского процесса передаются в экземпляр дочернего процесса.","Image source":"Источник изображения","Image view":"Изображение","Implement a script task using an inline FEEL expression. To add a custom implementation, use a job worker. ":"Реализует задачу со скриптом встроенным выражением FEEL. Чтобы добавить свою реализацию, напишите воркер заданий. ","Implement a user task managed by Camunda. To add a custom implementation, use a job worker. ":"Реализует задачу пользователя, которой управляет Camunda. Чтобы добавить свою реализацию, напишите воркер заданий. ","Implement the ad-hoc subprocess as a job worker instead of activating inner elements. The job type determines which worker handles the subprocess execution. ":"Реализует подпроцесс по требованию как воркер заданий вместо активации внутренних элементов. Тип задания определяет, какой воркер выполняет подпроцесс. ","Implementation":"Реализация","Implementation type":"Тип реализации","In mapping propagation":"Передача через сопоставления входов","In mappings":"Сопоставления входов","Include":"Включить","Inclusive Gateway":"Включающий шлюз","Inclusive gateway":"Включающий шлюз","Incompatible":"Несовместимо","Incompatible configuration type":"Несовместимый тип конфигурации","Increment":"Увеличить","Inherit from parent":"Наследовать от родителя","Initiator":"Инициатор","Inline script":"Встроенный скрипт","Input":"Вход","Input collection":"Входная коллекция","Input element":"Входной элемент","Input expression":"Входное выражение","Input expression: ":"Входное выражение: ","Input label":"Подпись входа","Input label: ":"Подпись входа: ","Input mapping":"Сопоставление входов","Input mappings documentation":"Документация: сопоставления входов","Input propagation":"Передача входов","Input type":"Тип входа","Input values":"Входные значения","Input values key":"Ключ входных значений","Inputs":"Входы","Intermediate Event":"Промежуточное событие","Intermediate Throw Event":"Промежуточное событие-отправка","Intermediate throw event":"Промежуточное событие-отправка","Issues for child elements":"Проблемы дочерних элементов","JSON contains errors":"В JSON есть ошибки","Java":"Java","Java class":"Класс Java","Job execution":"Выполнение задания","Job priority":"Приоритет задания","Job priority documentation":"Документация: приоритет задания","Job type":"Тип задания","Job worker":"Воркер заданий","Key":"Ключ","Kind":"Вид","Label":"Подпись","Lane":"Дорожка","Latest binding":"Привязка к последней версии","Layout":"Раскладка","Learn how to define conditions.":"Узнайте, как задавать условия.","Learn more":"Подробнее","Learn more in our":"Подробнее в нашей","Learn more.":"Подробнее.","Less":"Меньше","Less or equals":"Меньше или равно","Link":"Ссылка","Link Boundary Event":"Граничное событие связи","Link End Event":"Событие завершения связи","Link Intermediate Catch Event":"Промежуточное событие-ловушка связи","Link Intermediate Throw Event":"Промежуточное событие-отправка связи","Link a form created with the Camunda Forms editor. Submitting this form will start a new process instance. ":"Подключает форму, созданную в редакторе Camunda Forms. Отправка этой формы запустит новый экземпляр процесса. ","Link a form created with the Camunda Forms editor. To associate a custom form, application, or URL to the user task, specify an external reference. ":"Подключает форму, созданную в редакторе Camunda Forms. Чтобы связать с задачей пользователя свою форму, приложение или URL, укажите внешнюю ссылку. ","Link intermediate catch event":"Промежуточное событие-ловушка связи","Link intermediate throw event":"Промежуточное событие-отправка связи","Link or embed a form created with the Camunda Forms editor. To associate a custom form, application, or URL to the user task, specify a form key. ":"Подключает или встраивает форму, созданную в редакторе Camunda Forms. Чтобы связать с задачей пользователя свою форму, приложение или URL, укажите ключ формы. ","Link referring to a hosted image, or use a data URI directly to embed image data into the form.":"Ссылка на размещённое изображение или data URI, который встраивает данные изображения в форму.","List":"Список","List contains {numOfItems} item":"В списке {numOfItems} элемент","List contains {numOfItems} items":"В списке элементов: {numOfItems}","List of items":"Список элементов","List values":"Значения списка","Listener ID":"Идентификатор слушателя","Listener type":"Тип слушателя","Literal Expression":"Литеральное выражение","Literal expression":"Литеральное выражение","Literal expression editor":"Редактор литерального выражения","Loading...":"Загрузка...","Local":"Локально","Local variable assignment":"Задание локальной переменной","Local variable name":"Имя локальной переменной","Loop":"Цикл","Loop cardinality":"Счётчик цикла","MDN iFrame documentation.":"Документация MDN по iFrame.","Make this field read-only when it cannot be edited by the end-user, but its content is important for them to see. Its data will still be submitted.":"Сделайте это поле доступным только для чтения, если пользователь не может его изменить, но его содержимое важно ему видеть. Данные поля всё равно отправляются.","Manual Task":"Ручная задача","Manual task":"Ручная задача","Map":"Сопоставление","Map decision result":"Сопоставить результат решения","Map entries":"Записи сопоставления","Match none":"Нет совпадений","Match one":"Одно совпадение","Max height of preview container":"Максимальная высота контейнера предпросмотра","Max validation value is not a valid number.":"Максимальное значение для проверки не является числом.","Maximum":"Максимум","Maximum length":"Максимальная длина","Maximum {value} columns are allowed":"Максимальное количество столбцов: {value}","Maximum {value} fields per row are allowed":"Максимальное количество полей в строке: {value}","Message":"Сообщение","Message Boundary Event":"Граничное событие сообщения","Message Boundary Event (Non Interrupting)":"Граничное событие сообщения (непрерывающее)","Message End Event":"Событие завершения сообщения","Message Flow":"Поток сообщений","Message Intermediate Catch Event":"Промежуточное событие-ловушка сообщения","Message Intermediate Catch Event (Non Interrupting)":"Промежуточное событие-ловушка сообщения (непрерывающее)","Message Intermediate Throw Event":"Промежуточное событие-отправка сообщения","Message Start Event":"Стартовое событие сообщения","Message Start Event (Non Interrupting)":"Стартовое событие сообщения (непрерывающее)","Message boundary event":"Граничное событие сообщения","Message boundary event (non-interrupting)":"Граничное событие сообщения (непрерывающее)","Message boundary event documentation":"Документация: граничное событие сообщения","Message catch event documentation":"Документация: событие-ловушка сообщения","Message end event":"Событие завершения сообщения","Message intermediate catch event":"Промежуточное событие-ловушка сообщения","Message intermediate throw event":"Промежуточное событие-отправка сообщения","Message start event":"Стартовое событие сообщения","Message start event (non-interrupting)":"Стартовое событие сообщения (непрерывающее)","Message start event documentation":"Документация: стартовое событие сообщения","Message throw event documentation":"Документация: событие отправки сообщения","Message variable":"Переменная сообщения","Microphone access":"Доступ к микрофону","Min validation value is not a valid number.":"Минимальное значение для проверки не является числом.","Minimum":"Минимум","Minimum length":"Минимальная длина","Minimum {value} columns are allowed":"Минимальное количество столбцов: {value}","More actions":"Другие действия","Move Input":"Переместить входное условие","Move Output":"Переместить выходное значение","Move rule":"Переместить правило","Multi instance documentation":"Документация: несколько экземпляров","Multi-instance":"Несколько экземпляров","Multiple Boundary Event":"Множественное граничное событие","Multiple Boundary Event (Non Interrupting)":"Множественное граничное событие (непрерывающее)","Multiple End Event":"Множественное событие завершения","Multiple Intermediate Catch Event":"Множественное промежуточное событие-ловушка","Multiple Intermediate Catch Event (Non Interrupting)":"Множественное промежуточное событие-ловушка (непрерывающее)","Multiple Intermediate Throw Event":"Множественное промежуточное событие-отправка","Multiple Start Event":"Множественное стартовое событие","Multiple Start Event (Non Interrupting)":"Множественное стартовое событие (непрерывающее)","Multiple elements are selected. Select a single element to edit its properties.":"Выбрано несколько элементов. Выберите один элемент, чтобы изменить его свойства.","Must be a valid QName.":"Должно быть корректным QName.","Must be a variable or a dot separated path.":"Должна быть переменной или путём с точками.","Must be a variable or a dot-separated path.":"Должна быть переменной или путём через точки.","Must be at least {minLength} characters.":"Должно содержать не меньше {minLength} символов.","Must be empty, a variable or a dot-separated path.":"Должно быть пустым, переменной или путём через точки.","Must be unique.":"Должно быть уникальным.","Must match pattern {pattern}.":"Должно соответствовать шаблону {pattern}.","Must not be a prohibited path.":"Не должно быть запрещённым путём.","Must not be empty":"Не должно быть пустым","Must not be empty.":"Не должно быть пустым.","Must not cause two binding paths to collide":"Не должно приводить к совпадению двух путей привязки","Must not conflict with other key/path assignments.":"Не должно конфликтовать с другими назначениями ключей и путей.","Must not contain numerical path segments.":"Не должно содержать числовых сегментов пути.","Must not contain prefix.":"Не должно содержать префикс.","Must not contain spaces.":"Не должно содержать пробелы.","Name":"Имя","New value exceeds the maximum of {value} columns per row":"Новое значение превышает максимум столбцов в строке: {value}","Next page":"Следующая страница","No Entries":"Нет записей","No cluster connected":"Кластер не подключён","No compatible configurations are available in the connected cluster":"В подключённом кластере нет совместимых конфигураций","No compatible version of this template was found for your environment. Unlink to access the template’s data.":"Для вашей среды не найдено совместимой версии этого шаблона. Отвяжите шаблон, чтобы получить доступ к его данным.","No components found.":"Компоненты не найдены.","No content to show.":"Показывать нечего.","No files selected":"Файлы не выбраны","No overlap is possible and all rules are disjoint. Only a single rule can be matched":"Пересечений нет, все правила не пересекаются. Может сработать только одно правило","No results":"Нет результатов","No values":"Нет значений","Normal":"обычная","Not all external sources can be displayed in the iFrame. Read more about it in the":"Не все внешние источники можно показать в iFrame. Подробнее об этом в","Not checked":"Не проверено","Not found":"Не найдено","Not found on cluster":"Не найдено в кластере","Not supported":"Не поддерживается","Nothing to show.":"Показывать нечего.","Number":"Число","Number of days before this resource is being cleaned up. If specified, takes precedence over the engine configuration.":"Число дней до очистки этого ресурса. Если задано, оно важнее настроек движка.","Number of non-collapsing items":"Число несворачиваемых элементов","Number of rows per page":"Число строк на страницу","Off":"Выкл.","On":"Вкл.","Open decision table":"Открыть таблицу решений","Open documentation":"Открыть документацию","Open in fullscreen":"Открывать на весь экран","Open literal expression":"Открыть литеральное выражение","Open minimap":"Открыть миникарту","Open modal windows":"Открывать модальные окна","Open pop-up editor":"Открыть всплывающий редактор","Open popups":"Открывать всплывающие окна","Open {element}":"Открыть {element}","Opened in editor":"Открыто в редакторе","Options expression":"Выражение вариантов","Options source":"Источник вариантов","Otherwise, only variables defined via input mappings will be propagated.":"Иначе передаются только переменные, заданные сопоставлениями входов.","Otherwise, only variables defined via output mappings will be propagated.":"Иначе передаются только переменные, заданные сопоставлениями выходов.","Out mapping propagation":"Передача через сопоставления выходов","Out mappings":"Сопоставления выходов","Output":"Выход","Output as string":"Выход как строка","Output collection":"Выходная коллекция","Output element":"Выходной элемент","Output label":"Подпись выхода","Output label: ":"Подпись выхода: ","Output mapping":"Сопоставление выходов","Output mappings documentation":"Документация: сопоставления выходов","Output name":"Имя выхода","Output name: ":"Имя выхода: ","Output order":"Порядок выходов","Output propagation":"Передача выходов","Output type":"Тип выхода","Output values":"Выходные значения","Outputs":"Выходы","Pagination":"Разбивка на страницы","Parallel Boundary Event (Non Interrupting)":"Параллельное граничное событие (непрерывающее)","Parallel Event based instantiating Gateway":"Параллельный шлюз по событиям с созданием экземпляра","Parallel Gateway":"Параллельный шлюз","Parallel Intermediate Catch Event (Non Interrupting)":"Параллельное промежуточное событие-ловушка (непрерывающее)","Parallel Multiple Boundary Event":"Параллельное множественное граничное событие","Parallel Multiple Intermediate Catch Event":"Параллельное множественное промежуточное событие-ловушка","Parallel Multiple Start Event":"Параллельное множественное стартовое событие","Parallel Multiple Start Event (Non Interrupting)":"Параллельное множественное стартовое событие (непрерывающее)","Parallel gateway":"Параллельный шлюз","Parallel multi-instance":"Параллельные экземпляры","Parameter won\\\\'t be available in process scope.":"Параметр не будет доступен в области процесса.","Parameter won\\\\'t be created as local variable.":"Параметр не будет создан как локальная переменная.","Participant":"Участник","Participant ID":"ID участника","Participant Name":"Имя участника","Participant multiplicity":"Кратность участника","Paste input column left":"Вставить столбец входов слева","Paste input column right":"Вставить столбец входов справа","Paste output column left":"Вставить столбец выходов слева","Paste output column right":"Вставить столбец выходов справа","Paste rule above":"Вставить правило выше","Paste rule below":"Вставить правило ниже","Path":"Путь","Pause Simulation":"Симуляция приостановлена","Phone":"Телефон","Play Simulation":"Симуляция запущена","Play/Pause Simulation":"Запустить или приостановить симуляцию","Please make sure that the URL is safe as it might impose security risks.":"Убедитесь, что URL безопасен, иначе он может повлечь риски для безопасности.","Please select a valid value, the two nearest valid values are {previousValue} and {nextValue}.":"Выберите корректное значение, ближайшие корректные значения — {previousValue} и {nextValue}.","Preconfigured elements":"Преднастроенные элементы","Predefined values":"Заранее заданные значения","Prefix":"Префикс","Presentation":"Представление","Previous page":"Предыдущая страница","Priority":"Приоритет","Process":"Процесс","Process canceled":"Процесс отменён","Process finished":"Процесс завершён","Process ID":"Идентификатор процесса","Process documentation":"Документация процесса","Process name":"Имя процесса","Process started":"Процесс запущен","Process variable assignment":"Задание переменной процесса","Process variable name":"Имя переменной процесса","Process variable name must not be empty.":"Имя переменной процесса не должно быть пустым.","Process variable name must not contain spaces.":"Имя переменной процесса не должно содержать пробелы.","Process variables":"Переменные процесса","Propagate all child process variables":"Передавать все переменные дочернего процесса","Propagate all parent process variables":"Передавать все переменные родительского процесса","Propagate all variables":"Передавать все переменные","Properties":"Свойства","Question":"Вопрос","Radio group":"Группа переключателей","Range":"Диапазон","Range end operator":"Оператор конца диапазона","Range end value":"Значение конца диапазона","Range start operator":"Оператор начала диапазона","Range start value":"Значение начала диапазона","React to user task lifecycle events by executing a job worker. ":"Реагировать на события жизненного цикла задачи пользователя, выполняя воркер заданий. ","Read only":"Только для чтения","Receive Task":"Задача приёма","Receive task":"Задача приёма","Receive task message documentation":"Документация: сообщение задачи приёма","Refers to the process variable name":"Ссылается на имя переменной процесса","Refreshing configurations...":"Обновляем конфигурации...","Remove":"Убрать","Remove cell description":"Убрать описание ячейки","Remove form field":"Убрать поле формы","Remove input column":"Удалить столбец входов","Remove list item {index}":"Удалить элемент списка {index}","Remove output column":"Удалить столбец выходов","Remove parameter":"Убрать параметр","Remove pause point":"Удалить точку паузы","Remove rule":"Удалить правило","Remove tag":"Убрать тег","Remove {label}":"Убрать {label}","Repeatable":"Повторяемое","Required":"Обязательное","Reset":"Сбросить","Reset Simulation":"Сбросить симуляцию","Resize":"Изменить размер","Resource":"Ресурс","Result variable":"Переменная результата","Retries":"Повторы","Retry time cycle":"Цикл паузы перед повтором","Routes the children of this component into a form variable, may be left empty to route at the root level.":"Направляет дочерние элементы этого компонента в переменную формы; можно оставить пустым, чтобы направлять их на корневом уровне.","Routes the children of this component into a form variable.":"Направляет дочерние элементы этого компонента в переменную формы.","Rule order":"Порядок правил","Rules may overlap. The first matching rule will be chosen":"Правила могут пересекаться. Будет выбрано первое сработавшее правило","Rules may overlap. The one with the highest priority will be chosen":"Правила могут пересекаться. Будет выбрано правило с наивысшим приоритетом","Rules may overlap. Their output have to match":"Правила могут пересекаться. Их результаты должны совпадать","Scientific notation is disallowed in FEEL.":"Научная нотация в FEEL не допускается.","Scope":"Область","Script":"Скрипт","Script Task":"Задача со скриптом","Script execution":"Выполнение скриптов","Script task":"Задача со скриптом","Script task documentation":"Документация: задача со скриптом","Script type":"Тип скрипта","Search":"Поиск","Search components":"Поиск компонентов","Search in diagram":"Поиск по диаграмме","Searchable":"С возможностью поиска","Section contains a warning":"Раздел содержит предупреждение","Section contains an error":"В разделе есть ошибка","Section contains edits":"В разделе есть изменения","Security attributes":"Атрибуты безопасности","Select":"Выбрать","Select an element to edit its properties.":"Выберите элемент, чтобы изменить его свойства.","Selection":"Выбор","Send Task":"Задача отправки","Send task":"Задача отправки","Send task documentation":"Документация: задача отправки","Separator":"Разделитель","Sequence Flow":"Поток управления","Sequence flow":"Поток управления","Sequential multi-instance":"Последовательные экземпляры","Serialization":"Сериализация","Service Task":"Сервисная задача","Service task":"Сервисная задача","Service task documentation":"Документация: сервисная задача","Set animation speed = {speed}":"Скорость анимации: {speed}","Set Sequence Flow":"Выбрать поток управления","Set color":"Задать цвет","Set date":"Задать дату","Set date and time":"Задать дату и время","Set duration":"Задать длительность","Set time":"Задать время","Set value":"Задать значение","Should be a valid number.":"Должно быть корректным числом.","Should be an integer.":"Должно быть целым числом.","Should be at least {value}.":"Должно быть не меньше {value}.","Should be at most {value}.":"Должно быть не больше {value}.","Should be greater than or equal to zero.":"Должно быть больше нуля или равно нулю.","Should be greater than zero.":"Должно быть больше нуля.","Should not contain more than {value} decimal digits.":"Не должно содержать больше {value} знаков после запятой.","Show outline":"Показать контур","Signal":"Сигнал","Signal Boundary Event":"Граничное событие сигнала","Signal Boundary Event (Non Interrupting)":"Граничное событие сигнала (непрерывающее)","Signal End Event":"Событие завершения сигнала","Signal Intermediate Catch Event":"Промежуточное событие-ловушка сигнала","Signal Intermediate Catch Event (Non Interrupting)":"Промежуточное событие-ловушка сигнала (непрерывающее)","Signal Intermediate Throw Event":"Промежуточное событие-отправка сигнала","Signal Start Event":"Стартовое событие сигнала","Signal Start Event (Non Interrupting)":"Стартовое событие сигнала (непрерывающее)","Signal boundary event":"Граничное событие сигнала","Signal boundary event (non-interrupting)":"Граничное событие сигнала (непрерывающее)","Signal end event":"Событие завершения сигнала","Signal intermediate catch event":"Промежуточное событие-ловушка сигнала","Signal intermediate throw event":"Промежуточное событие-отправка сигнала","Signal start event":"Стартовое событие сигнала","Signal start event (non-interrupting)":"Стартовое событие сигнала (непрерывающее)","Simulation Log":"Журнал симуляции","Skip to search":"Перейти к поиску","Slow":"медленно","Source":"Источник","Source expression":"Выражение источника","Spacer":"Отступ","Specifies the default priority for all jobs created by a process. Must be an integer. If no value is provided, the default value is 0. ":"Задаёт приоритет по умолчанию для всех заданий, создаваемых процессом. Должно быть целым числом. Если значение не задано, по умолчанию 0. ","Specifies the priority of a job. Must be an integer. If no value is provided, the default value is 0. ":"Задаёт приоритет задания. Должно быть целым числом. Если значение не задано, по умолчанию 0. ","Specifies the priority of a user task. Must be an integer between 0 and 100. If no value is provided, the default value is 50. ":"Задаёт приоритет задачи пользователя. Должно быть целым числом от 0 до 100. Если значение не задано, по умолчанию 50. ","Specify an expression to populate column items":"Задайте выражение, из которого заполняются элементы столбца","Specify more than one group as a comma separated list.":"Укажите несколько групп списком через запятую.","Specify more than one user as a comma separated list.":"Укажите нескольких пользователей списком через запятую.","Specify more than one variable change event as a comma separated list. Variable change events are:":"Укажите несколько событий изменения переменных списком через запятую. События изменения переменных:","Specify the condition that triggers this event. ":"Задайте условие, которое вызывает это событие. ","Specify the source from which to populate the table":"Задайте источник, из которого заполняется таблица","Specify which job workers handle the event work. ":"Укажите, какие воркеры заданий выполняют работу события. ","Specify which job workers handle the task work to evaluate business rules. ":"Укажите, какие воркеры заданий выполняют работу задачи по вычислению бизнес-правил. ","Specify which job workers handle the task work to execute a script. ":"Укажите, какие воркеры заданий выполняют работу задачи по выполнению скрипта. ","Specify which job workers handle the task work to execute a service (e.g. ":"Укажите, какие воркеры заданий выполняют работу задачи по вызову сервиса (например, ","Specify which job workers handle the task work to send a message (e.g. ":"Укажите, какие воркеры заданий выполняют работу задачи по отправке сообщения (например, ","Start Event":"Стартовое событие","Start date":"Дата начала","Start date and time":"Дата и время начала","Start event":"Стартовое событие","Start event form documentation":"Документация: форма стартового события","Start initiator":"Инициатор запуска","Start time":"Время начала","Start typing \\"\${}\\" to create an expression.":"Начните печатать \\"\${}\\", чтобы создать выражение.","Start value":"Начальное значение","Startable":"Можно запустить","Static options":"Статические варианты","Storage access by user":"Доступ к хранилищу по действию пользователя","String":"Строка","String or expression":"Строка или выражение","String value":"Значение строки","Strings must be in double quotes":"Строки должны быть в двойных кавычках","Sub-process":"Подпроцесс","Sub-process (collapsed)":"Подпроцесс (свёрнутый)","Sub-process (expanded)":"Подпроцесс (развёрнутый)","Submit":"Отправить","SubProcess canceled":"Подпроцесс отменён","SubProcess finished":"Подпроцесс завершён","SubProcess started":"Подпроцесс запущен","Subscription correlation key":"Ключ сопоставления подписки","Subscription correlation key documentation":"Документация: ключ сопоставления подписки","Subtype":"Подтип","Suffix":"Суффикс","Supported file formats":"Поддерживаемые форматы файлов","Supports HTML, styling, and templating. Styles are automatically scoped to the HTML component.":"Поддерживает HTML, стили и шаблоны. Стили автоматически ограничиваются компонентом HTML.","Supports markdown and templating.":"Поддерживает markdown и шаблоны.","Table":"Таблица","Tag list":"Список тегов","Target":"Цель","Target value":"Целевое значение","Task":"Задача","Task definition":"Определение задачи","Task headers documentation":"Документация: заголовки задачи","Task listeners":"Слушатели задач","Task listeners documentation":"Документация: слушатели задач","Tasklist":"Tasklist","Template":"Шаблон","Templates":"Шаблоны","Tenant ID":"Идентификатор арендатора","Terminate End Event":"Событие завершения (терминация)","Terminate end event":"Событие завершения (терминация)","Test type":"Тип проверки","Text":"Текст","Text Annotation":"Текстовая аннотация","Text area":"Многострочный текст","Text field":"Текстовое поле","Text view":"Текстовый вид","Text view is empty":"Текстовое представление пустое","Text view is populated by an expression":"Текстовое представление заполняется выражением","Text view is templated":"Текстовое представление задано шаблоном","The built-in phone validation pattern is based on the E.164 standard with no spaces. Ex: +491234567890":"Встроенный шаблон проверки телефона основан на стандарте E.164 без пробелов. Например: +491234567890","The document data source is required.":"Источник данных документа обязателен.","The due date as an EL expression (e.g. \${someDate}) or an ISO date (e.g. 2015-06-26T09:54:00).":"Срок выполнения как выражение EL (например, \${someDate}) или дата ISO (например, 2015-06-26T09:54:00).","The error message to display when the input does not match the regular expression.":"Сообщение об ошибке, которое показывается, если ввод не соответствует регулярному выражению.","The expression may result in an array of simple values or alternatively follow this schema:":"Выражение может дать массив простых значений или соответствовать этой схеме:","The follow up date as an EL expression (e.g. \${someDate}) or an ISO date (e.g. 2015-06-26T09:54:00).":"Срок напоминания как выражение EL (например, \${someDate}) или дата ISO (например, 2015-06-26T09:54:00).","The input property may be an array of simple values or alternatively follow this schema:":"Входное свойство может быть массивом простых значений или соответствовать этой схеме:","The number of times the engine tries executing this activity if a worker signals a failure. The default is three.":"Сколько раз движок пытается выполнить это действие, если воркер сообщает об ошибке. По умолчанию три.","The template applied was not found. Therefore, its properties cannot be shown. Unlink to access the data.":"Применённый шаблон не найден, поэтому его свойства показать нельзя. Отвяжите шаблон, чтобы получить доступ к данным.","Then":"Тогда","These options can incur security risks, especially if used in combination with dynamic links. Ensure that you are aware of them, that you trust the source url and only enable what your use case requires.":"Эти параметры могут повлечь риски для безопасности, особенно в сочетании с динамическими ссылками. Убедитесь, что знаете о них, доверяете источнику url и включаете только то, что нужно вашей задаче.","This maps to the decision definition key.":"Это соответствует ключу определения решения.","This maps to the process definition key.":"Это соответствует ключу определения процесса.","This template is deprecated.":"Этот шаблон устарел.","Throw expression":"Выражение для выброса ошибки","Time":"Время","Time format":"Формат времени","Time interval":"Интервал времени","Time label":"Подпись времени","Time to live":"Время жизни","Time value":"Значение времени","Timer":"Таймер","Timer Boundary Event":"Граничное событие таймера","Timer Boundary Event (Non Interrupting)":"Граничное событие таймера (непрерывающее)","Timer Intermediate Catch Event":"Промежуточное событие-ловушка таймера","Timer Intermediate Catch Event (Non Interrupting)":"Промежуточное событие-ловушка таймера (непрерывающее)","Timer Start Event":"Стартовое событие таймера","Timer Start Event (Non Interrupting)":"Стартовое событие таймера (непрерывающее)","Timer boundary event":"Граничное событие таймера","Timer boundary event (non-interrupting)":"Граничное событие таймера (непрерывающее)","Timer documentation":"Документация: таймер","Timer intermediate catch event":"Промежуточное событие-ловушка таймера","Timer start event":"Стартовое событие таймера","Timer start event (non-interrupting)":"Стартовое событие таймера (непрерывающее)","To collect the output define the output collection and the output element expressions. ":"Чтобы собрать выход, задайте выражения выходной коллекции и выходного элемента. ","Toggle Simulation Log":"Показать или скрыть журнал симуляции","Toggle linting overlays":"Переключить слои проверки","Toggle list item":"Переключить элемент списка","Toggle non-interrupting":"Переключить непрерывающий","Toggle section":"Развернуть или свернуть раздел","Token Simulation":"Симуляция токенов","Top":"Сверху","Top level navigation":"Переход верхнего уровня","Topic":"Тема","Transaction":"Транзакция","Trigger Event":"Запустить событие","Type":"Тип","URL":"URL","UTC plus 2 hours zone offset":"Смещение часового пояса UTC плюс 2 часа","UTC time":"Время UTC","Unable to download document":"Не удалось скачать документ","Unique":"Уникальная","Unlink":"Отвязать","Unparsable FEEL expression.":"Не удаётся разобрать выражение FEEL.","Unset":"Не задано","Update":"Обновить","Update available":"Доступно обновление","Upgrade":"Обновить","Upload multiple files":"Загрузить несколько файлов","Use 24h":"Использовать 24 ч","Use a unique \\"key\\" to link the form element and the related input/output data. When dealing with nested data, break it down in the user task\\\\":"Используйте уникальный ключ \\"key\\", чтобы связать элемент формы с входными и выходными данными. Работая с вложенными данными, разберите их на части в сопоставлении входов задачи пользователя","Use a unique \\"key\\" to link the form element and the related input/output data. When dealing with nested data, break it down in the user task\\\\'s input mapping before using it.":"Используйте уникальный ключ \\"key\\", чтобы связать элемент формы с входными и выходными данными. Работая с вложенными данными, сначала разберите их на части в сопоставлении входов задачи пользователя, а потом используйте.","Use now":"Взять текущее","Use the preview window to test your form.":"Проверьте форму в окне предпросмотра.","Use today":"Взять сегодня","User Task":"Задача пользователя","User assignment":"Назначение пользователя","User task":"Задача пользователя","User task documentation":"Документация: задача пользователя","User task form documentation":"Документация: форма задачи пользователя","User task priority documentation":"Документация: приоритет задачи пользователя","Uses the most recent deployed resource with the given version tag.":"Использует последний развёрнутый ресурс с указанным тегом версии.","Uses the most recent deployed resource.":"Использует последний развёрнутый ресурс.","Uses the resource found in the same deployment.":"Использует ресурс из того же развёртывания.","Validation":"Проверка","Validation pattern":"Шаблон проверки","Value":"Значение","Value changes":"Изменение значения","Value is expected to be an integer.":"Ожидается целое число.","Value is expected to have at most 1 decimal digit.":"Ожидается не больше одного знака после запятой.","Value is expected to have at most {value} decimal digits.":"Ожидается не больше {value} знаков после запятой.","Value is not a number.":"Значение не является числом.","Values":"Значения","Variable":"Переменная","Variable assignment value":"Значение задания переменной","Variable events":"События с переменными","Variable events that trigger the condition evaluation. If none selected, all variable events will trigger the condition evaluation. ":"События с переменными, которые вызывают вычисление условия. Если ничего не выбрано, условие вычисляется по всем событиям с переменными. ","Variable name":"Имя переменной","Variable name:":"Имя переменной:","Variable type":"Тип переменной","Variable type:":"Тип переменной:","Version":"Версия","Version tag":"Тег версии","Version tag binding":"Привязка к тегу версии","Version tag by which the called decision will be referenced.":"Тег версии, по которому будет ссылаться вызываемое решение.","Version tag by which the called process will be referenced.":"Тег версии, по которому будет ссылаться вызываемый процесс.","Version tag by which the linked form will be referenced.":"Тег версии, по которому будет ссылаться подключённая форма.","Version tag by which this decision can be referenced.":"Тег версии, по которому можно сослаться на это решение.","Version tag by which this form can be referenced.":"Тег версии, по которому можно сослаться на эту форму.","Version tag by which this process can be referenced.":"Тег версии, по которому можно сослаться на этот процесс.","Version {version} · Requires version {minimumVersion}+":"Версия {version} · нужна версия {minimumVersion}+","Vertical alignment":"Вертикальное выравнивание","View DRD":"Показать DRD","Wait for completion":"Ждать завершения","When":"Когда","When using Camunda Tasklist UI, additional document reference attributes are automatically handled. Modifying the document reference may affect the document preview functionality.":"В интерфейсе Camunda Tasklist дополнительные атрибуты ссылки на документ обрабатываются автоматически. Изменение ссылки на документ может повлиять на предпросмотр документа.","Where the child variables of this component are pathed to.":"Куда направляются дочерние переменные этого компонента.","X-FRAME-OPTIONS documentation":"Документация по X-FRAME-OPTIONS","Yes":"Да","assignment":"присваивание","binding path '{value}' is already claimed":"путь привязки «{value}» уже занят","boolean":"логический","collectEntries (List<Object>)":"collectEntries (List<Object>)","complete":"завершить","create":"создать","date":"дата","delete":"удалить","deployment":"развёртывание","documentation":"документация","e.g. { example } ":"например, { example } ","e.g. { sample }":"например, { sample }","end":"конец","enum":"перечисление","every 10 seconds, up to 5 times":"каждые 10 секунд, до 5 раз","every day, infinitely":"каждый день, бесконечно","every hour on the hour from 9-5 p.m. UTC Monday-Friday":"каждый час в начале часа с 9 до 17 по UTC с понедельника по пятницу","file type specifiers":"спецификаторы типов файлов","flow elements must be children of pools/participants":"элементы потока должны находиться внутри пулов или участников","latest":"последняя","long":"целое","name":"имя","resultList (List<Map<String, Object>>)":"resultList (List<Map<String, Object>>)","singleEntry (TypedValue)":"singleEntry (TypedValue)","singleResult (Map<String, Object>)":"singleResult (Map<String, Object>)","start":"начать","string":"строка","take":"взять","timeout":"тайм-аут","update":"обновить","version":"версия","version tag":"тег версии","versionTag":"versionTag","{eventType}: {type}":"{eventType}: {type}","{label} cannot exceed {maxLength} characters.":"{label} не может быть длиннее {maxLength} символов.","{label} must be at least {minLength} characters.":"{label} должно содержать не меньше {minLength} символов.","{label} must match pattern {pattern}.":"{label} должно соответствовать шаблону {pattern}.","{label} must not be empty.":"{label} не должно быть пустым.","{label} {message}":"{label} {message}","{name} canceled":"{name} отменён","{name} finished":"{name} завершён","{name} started":"{name} запущен","{page} of {total}":"{page} из {total}","{value} files selected":"выбрано файлов: {value}"}`),n={app:e,libs:t};export{e as app,n as default,t as libs};