workflow.ts 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541
  1. const translation = {
  2. common: {
  3. undo: 'Отменить',
  4. redo: 'Повторить',
  5. editing: 'Редактирование',
  6. autoSaved: 'Автосохранено',
  7. unpublished: 'Не опубликовано',
  8. published: 'Опубликовано',
  9. publish: 'Опубликовать',
  10. update: 'Обновить',
  11. run: 'Запустить',
  12. running: 'Выполняется',
  13. inRunMode: 'В режиме выполнения',
  14. inPreview: 'В режиме предпросмотра',
  15. inPreviewMode: 'В режиме предпросмотра',
  16. preview: 'Предпросмотр',
  17. viewRunHistory: 'Посмотреть историю запусков',
  18. runHistory: 'История запусков',
  19. goBackToEdit: 'Вернуться к редактору',
  20. conversationLog: 'Журнал разговоров',
  21. features: 'Функции',
  22. debugAndPreview: 'Предпросмотр',
  23. restart: 'Перезапустить',
  24. currentDraft: 'Текущий черновик',
  25. currentDraftUnpublished: 'Текущий черновик не опубликован',
  26. latestPublished: 'Последняя опубликованная версия',
  27. publishedAt: 'Опубликовано',
  28. restore: 'Восстановить',
  29. runApp: 'Запустить приложение',
  30. batchRunApp: 'Пакетный запуск приложения',
  31. accessAPIReference: 'Доступ к справочнику API',
  32. embedIntoSite: 'Встроить на сайт',
  33. addTitle: 'Добавить заголовок...',
  34. addDescription: 'Добавить описание...',
  35. noVar: 'Нет переменной',
  36. searchVar: 'Поиск переменной',
  37. variableNamePlaceholder: 'Имя переменной',
  38. setVarValuePlaceholder: 'Установить значение переменной',
  39. needConnectTip: 'Этот шаг ни к чему не подключен',
  40. maxTreeDepth: 'Максимальный предел {{depth}} узлов на ветку',
  41. needEndNode: 'Необходимо добавить блок "Конец"',
  42. needAnswerNode: 'Необходимо добавить блок "Ответ"',
  43. workflowProcess: 'Процесс рабочего процесса',
  44. notRunning: 'Еще не запущено',
  45. previewPlaceholder: 'Введите текст в поле ниже, чтобы начать отладку чат-бота',
  46. effectVarConfirm: {
  47. title: 'Удалить переменную',
  48. content: 'Переменная используется в других узлах. Вы все еще хотите удалить ее?',
  49. },
  50. insertVarTip: 'Нажмите клавишу "/" чтобы быстро вставить',
  51. processData: 'Обработка данных',
  52. input: 'Вход',
  53. output: 'Выход',
  54. jinjaEditorPlaceholder: 'Введите "/" или "{" для вставки переменной',
  55. viewOnly: 'Только просмотр',
  56. showRunHistory: 'Показать историю запусков',
  57. enableJinja: 'Включить поддержку шаблонов Jinja',
  58. learnMore: 'Узнать больше',
  59. copy: 'Копировать',
  60. duplicate: 'Дублировать',
  61. addBlock: 'Добавить блок',
  62. pasteHere: 'Вставить сюда',
  63. pointerMode: 'Режим указателя',
  64. handMode: 'Режим руки',
  65. model: 'Модель',
  66. workflowAsTool: 'Рабочий процесс как инструмент',
  67. configureRequired: 'Требуется настройка',
  68. configure: 'Настроить',
  69. manageInTools: 'Управление в инструментах',
  70. workflowAsToolTip: 'После обновления рабочего процесса требуется перенастройка инструмента.',
  71. viewDetailInTracingPanel: 'Посмотреть подробности',
  72. syncingData: 'Синхронизация данных, всего несколько секунд.',
  73. importDSL: 'Импортировать DSL',
  74. importDSLTip: 'Текущий черновик будет перезаписан. Экспортируйте рабочий процесс в качестве резервной копии перед импортом.',
  75. backupCurrentDraft: 'Резервное копирование текущего черновика',
  76. chooseDSL: 'Выберите файл DSL(yml)',
  77. overwriteAndImport: 'Перезаписать и импортировать',
  78. importFailure: 'Ошибка импорта',
  79. importSuccess: 'Импорт успешно завершен',
  80. },
  81. env: {
  82. envPanelTitle: 'Переменные среды',
  83. envDescription: 'Переменные среды могут использоваться для хранения конфиденциальной информации и учетных данных. Они доступны только для чтения и могут быть отделены от файла DSL во время экспорта.',
  84. envPanelButton: 'Добавить переменную',
  85. modal: {
  86. title: 'Добавить переменную среды',
  87. editTitle: 'Редактировать переменную среды',
  88. type: 'Тип',
  89. name: 'Имя',
  90. namePlaceholder: 'Имя переменной среды',
  91. value: 'Значение',
  92. valuePlaceholder: 'Значение переменной среды',
  93. secretTip: 'Используется для определения конфиденциальной информации или данных, с настройками DSL, настроенными для предотвращения утечки.',
  94. },
  95. export: {
  96. title: 'Экспортировать секретные переменные среды?',
  97. checkbox: 'Экспортировать секретные значения',
  98. ignore: 'Экспортировать DSL',
  99. export: 'Экспортировать DSL с секретными значениями ',
  100. },
  101. },
  102. chatVariable: {
  103. panelTitle: 'Переменные разговора',
  104. panelDescription: 'Переменные разговора используются для хранения интерактивной информации, которую LLM необходимо запомнить, включая историю разговоров, загруженные файлы, пользовательские настройки. Они доступны для чтения и записи. ',
  105. docLink: 'Посетите нашу документацию, чтобы узнать больше.',
  106. button: 'Добавить переменную',
  107. modal: {
  108. title: 'Добавить переменную разговора',
  109. editTitle: 'Редактировать переменную разговора',
  110. name: 'Имя',
  111. namePlaceholder: 'Имя переменной',
  112. type: 'Тип',
  113. value: 'Значение по умолчанию',
  114. valuePlaceholder: 'Значение по умолчанию, оставьте пустым, чтобы не устанавливать',
  115. description: 'Описание',
  116. descriptionPlaceholder: 'Опишите переменную',
  117. editInJSON: 'Редактировать в JSON',
  118. oneByOne: 'Добавлять по одному',
  119. editInForm: 'Редактировать в форме',
  120. arrayValue: 'Значение',
  121. addArrayValue: 'Добавить значение',
  122. objectKey: 'Ключ',
  123. objectType: 'Тип',
  124. objectValue: 'Значение по умолчанию',
  125. },
  126. storedContent: 'Сохраненный контент',
  127. updatedAt: 'Обновлено в ',
  128. },
  129. changeHistory: {
  130. title: 'История изменений',
  131. placeholder: 'Вы еще ничего не изменили',
  132. clearHistory: 'Очистить историю',
  133. hint: 'Подсказка',
  134. hintText: 'Ваши действия по редактированию отслеживаются в истории изменений, которая хранится на вашем устройстве в течение этого сеанса. Эта история будет очищена, когда вы покинете редактор.',
  135. stepBackward_one: '{{count}} шаг назад',
  136. stepBackward_other: '{{count}} шагов назад',
  137. stepForward_one: '{{count}} шаг вперед',
  138. stepForward_other: '{{count}} шагов вперед',
  139. sessionStart: 'Начало сеанса',
  140. currentState: 'Текущее состояние',
  141. nodeTitleChange: 'Изменено название блока',
  142. nodeDescriptionChange: 'Изменено описание блока',
  143. nodeDragStop: 'Блок перемещен',
  144. nodeChange: 'Блок изменен',
  145. nodeConnect: 'Блок подключен',
  146. nodePaste: 'Блок вставлен',
  147. nodeDelete: 'Блок удален',
  148. nodeAdd: 'Блок добавлен',
  149. nodeResize: 'Размер блока изменен',
  150. noteAdd: 'Заметка добавлена',
  151. noteChange: 'Заметка изменена',
  152. noteDelete: 'Заметка удалена',
  153. edgeDelete: 'Блок отключен',
  154. },
  155. errorMsg: {
  156. fieldRequired: '{{field}} обязательно для заполнения',
  157. authRequired: 'Требуется авторизация',
  158. invalidJson: '{{field}} неверный JSON',
  159. fields: {
  160. variable: 'Имя переменной',
  161. variableValue: 'Значение переменной',
  162. code: 'Код',
  163. model: 'Модель',
  164. rerankModel: 'Модель переранжирования',
  165. },
  166. invalidVariable: 'Неверная переменная',
  167. },
  168. singleRun: {
  169. testRun: 'Тестовый запуск ',
  170. startRun: 'Начать запуск',
  171. running: 'Выполняется',
  172. testRunIteration: 'Итерация тестового запуска',
  173. back: 'Назад',
  174. iteration: 'Итерация',
  175. },
  176. tabs: {
  177. 'searchBlock': 'Поиск блока',
  178. 'blocks': 'Блоки',
  179. 'searchTool': 'Поиск инструмента',
  180. 'tools': 'Инструменты',
  181. 'allTool': 'Все',
  182. 'builtInTool': 'Встроенные',
  183. 'customTool': 'Пользовательские',
  184. 'workflowTool': 'Рабочий процесс',
  185. 'question-understand': 'Понимание вопроса',
  186. 'logic': 'Логика',
  187. 'transform': 'Преобразование',
  188. 'utilities': 'Утилиты',
  189. 'noResult': 'Ничего не найдено',
  190. },
  191. blocks: {
  192. 'start': 'Начало',
  193. 'end': 'Конец',
  194. 'answer': 'Ответ',
  195. 'llm': 'LLM',
  196. 'knowledge-retrieval': 'Поиск знаний',
  197. 'question-classifier': 'Классификатор вопросов',
  198. 'if-else': 'ЕСЛИ/ИНАЧЕ',
  199. 'code': 'Код',
  200. 'template-transform': 'Шаблон',
  201. 'http-request': 'HTTP-запрос',
  202. 'variable-assigner': 'Агрегатор переменных',
  203. 'variable-aggregator': 'Агрегатор переменных',
  204. 'assigner': 'Назначение переменной',
  205. 'iteration-start': 'Начало итерации',
  206. 'iteration': 'Итерация',
  207. 'parameter-extractor': 'Извлечение параметров',
  208. },
  209. blocksAbout: {
  210. 'start': 'Определите начальные параметры для запуска рабочего процесса',
  211. 'end': 'Определите конец и тип результата рабочего процесса',
  212. 'answer': 'Определите содержимое ответа в чате',
  213. 'llm': 'Вызов больших языковых моделей для ответа на вопросы или обработки естественного языка',
  214. 'knowledge-retrieval': 'Позволяет запрашивать текстовый контент, связанный с вопросами пользователей, из базы знаний',
  215. 'question-classifier': 'Определите условия классификации вопросов пользователей, LLM может определить, как будет развиваться разговор на основе описания классификации',
  216. 'if-else': 'Позволяет разделить рабочий процесс на две ветки на основе условий if/else',
  217. 'code': 'Выполните фрагмент кода Python или NodeJS для реализации пользовательской логики',
  218. 'template-transform': 'Преобразование данных в строку с использованием синтаксиса шаблонов Jinja',
  219. 'http-request': 'Разрешить отправку запросов на сервер по протоколу HTTP',
  220. 'variable-assigner': 'Объединение переменных из нескольких ветвей в одну переменную для унифицированной настройки подчиненных узлов.',
  221. 'assigner': 'Узел назначения переменной используется для назначения значений записываемым переменным (например, переменным разговора).',
  222. 'variable-aggregator': 'Объединение переменных из нескольких ветвей в одну переменную для унифицированной настройки подчиненных узлов.',
  223. 'iteration': 'Выполнение нескольких шагов над объектом списка до тех пор, пока не будут выведены все результаты.',
  224. 'parameter-extractor': 'Используйте LLM для извлечения структурированных параметров из естественного языка для вызова инструментов или HTTP-запросов.',
  225. },
  226. operator: {
  227. zoomIn: 'Увеличить',
  228. zoomOut: 'Уменьшить',
  229. zoomTo50: 'Масштаб 50%',
  230. zoomTo100: 'Масштаб 100%',
  231. zoomToFit: 'По размеру',
  232. },
  233. panel: {
  234. userInputField: 'Поле ввода пользователя',
  235. changeBlock: 'Изменить блок',
  236. helpLink: 'Ссылка на справку',
  237. about: 'О программе',
  238. createdBy: 'Создано ',
  239. nextStep: 'Следующий шаг',
  240. addNextStep: 'Добавить следующий блок в этот рабочий процесс',
  241. selectNextStep: 'Выбрать следующий блок',
  242. runThisStep: 'Выполнить этот шаг',
  243. checklist: 'Контрольный список',
  244. checklistTip: 'Убедитесь, что все проблемы решены перед публикацией',
  245. checklistResolved: 'Все проблемы решены',
  246. organizeBlocks: 'Организовать блоки',
  247. change: 'Изменить',
  248. optional: '(необязательно)',
  249. },
  250. nodes: {
  251. common: {
  252. outputVars: 'Выходные переменные',
  253. insertVarTip: 'Вставить переменную',
  254. memory: {
  255. memory: 'Память',
  256. memoryTip: 'Настройки памяти чата',
  257. windowSize: 'Размер окна',
  258. conversationRoleName: 'Имя роли разговора',
  259. user: 'Префикс пользователя',
  260. assistant: 'Префикс помощника',
  261. },
  262. memories: {
  263. title: 'Воспоминания',
  264. tip: 'Память чата',
  265. builtIn: 'Встроенные',
  266. },
  267. },
  268. start: {
  269. required: 'обязательно',
  270. inputField: 'Поле ввода',
  271. builtInVar: 'Встроенные переменные',
  272. outputVars: {
  273. query: 'Ввод пользователя',
  274. memories: {
  275. des: 'История разговоров',
  276. type: 'тип сообщения',
  277. content: 'содержимое сообщения',
  278. },
  279. files: 'Список файлов',
  280. },
  281. noVarTip: 'Установите входные данные, которые можно использовать в рабочем процессе',
  282. },
  283. end: {
  284. outputs: 'Выходы',
  285. output: {
  286. type: 'тип вывода',
  287. variable: 'выходная переменная',
  288. },
  289. type: {
  290. 'none': 'Нет',
  291. 'plain-text': 'Простой текст',
  292. 'structured': 'Структурированный',
  293. },
  294. },
  295. answer: {
  296. answer: 'Ответ',
  297. outputVars: 'Выходные переменные',
  298. },
  299. llm: {
  300. model: 'модель',
  301. variables: 'переменные',
  302. context: 'контекст',
  303. contextTooltip: 'Вы можете импортировать знания как контекст',
  304. notSetContextInPromptTip: 'Чтобы включить функцию контекста, пожалуйста, заполните переменную контекста в PROMPT.',
  305. prompt: 'подсказка',
  306. roleDescription: {
  307. system: 'Дайте высокоуровневые инструкции для разговора',
  308. user: 'Предоставьте инструкции, запросы или любой текстовый ввод для модели',
  309. assistant: 'Ответы модели на основе сообщений пользователя',
  310. },
  311. addMessage: 'Добавить сообщение',
  312. vision: 'зрение',
  313. files: 'Файлы',
  314. resolution: {
  315. name: 'Разрешение',
  316. high: 'Высокое',
  317. low: 'Низкое',
  318. },
  319. outputVars: {
  320. output: 'Создать контент',
  321. usage: 'Информация об использовании модели',
  322. },
  323. singleRun: {
  324. variable: 'Переменная',
  325. },
  326. sysQueryInUser: 'sys.query в сообщении пользователя обязателен',
  327. },
  328. knowledgeRetrieval: {
  329. queryVariable: 'Переменная запроса',
  330. knowledge: 'Знания',
  331. outputVars: {
  332. output: 'Извлеченные сегментированные данные',
  333. content: 'Сегментированный контент',
  334. title: 'Сегментированный заголовок',
  335. icon: 'Сегментированный значок',
  336. url: 'Сегментированный URL',
  337. metadata: 'Другие метаданные',
  338. },
  339. },
  340. http: {
  341. inputVars: 'Входные переменные',
  342. api: 'API',
  343. apiPlaceholder: 'Введите URL, введите "/" для вставки переменной',
  344. notStartWithHttp: 'API должен начинаться с http:// или https://',
  345. key: 'Ключ',
  346. value: 'Значение',
  347. bulkEdit: 'Массовое редактирование',
  348. keyValueEdit: 'Редактирование ключа-значения',
  349. headers: 'Заголовки',
  350. params: 'Параметры',
  351. body: 'Тело',
  352. outputVars: {
  353. body: 'Содержимое ответа',
  354. statusCode: 'Код состояния ответа',
  355. headers: 'Список заголовков ответа JSON',
  356. files: 'Список файлов',
  357. },
  358. authorization: {
  359. 'authorization': 'Авторизация',
  360. 'authorizationType': 'Тип авторизации',
  361. 'no-auth': 'Нет',
  362. 'api-key': 'API-ключ',
  363. 'auth-type': 'Тип аутентификации',
  364. 'basic': 'Базовая',
  365. 'bearer': 'Bearer',
  366. 'custom': 'Пользовательская',
  367. 'api-key-title': 'API-ключ',
  368. 'header': 'Заголовок',
  369. },
  370. insertVarPlaceholder: 'введите "/" для вставки переменной',
  371. timeout: {
  372. title: 'Тайм-аут',
  373. connectLabel: 'Тайм-аут подключения',
  374. connectPlaceholder: 'Введите тайм-аут подключения в секундах',
  375. readLabel: 'Тайм-аут чтения',
  376. readPlaceholder: 'Введите тайм-аут чтения в секундах',
  377. writeLabel: 'Тайм-аут записи',
  378. writePlaceholder: 'Введите тайм-аут записи в секундах',
  379. },
  380. },
  381. code: {
  382. inputVars: 'Входные переменные',
  383. outputVars: 'Выходные переменные',
  384. advancedDependencies: 'Расширенные зависимости',
  385. advancedDependenciesTip: 'Добавьте сюда некоторые предварительно загруженные зависимости, которые занимают больше времени для потребления или не являются встроенными по умолчанию',
  386. searchDependencies: 'Поиск зависимостей',
  387. },
  388. templateTransform: {
  389. inputVars: 'Входные переменные',
  390. code: 'Код',
  391. codeSupportTip: 'Поддерживает только Jinja2',
  392. outputVars: {
  393. output: 'Преобразованный контент',
  394. },
  395. },
  396. ifElse: {
  397. if: 'Если',
  398. else: 'Иначе',
  399. elseDescription: 'Используется для определения логики, которая должна быть выполнена, когда условие if не выполняется.',
  400. and: 'и',
  401. or: 'или',
  402. operator: 'Оператор',
  403. notSetVariable: 'Пожалуйста, сначала установите переменную',
  404. comparisonOperator: {
  405. 'contains': 'содержит',
  406. 'not contains': 'не содержит',
  407. 'start with': 'начинается с',
  408. 'end with': 'заканчивается на',
  409. 'is': 'равно',
  410. 'is not': 'не равно',
  411. 'empty': 'пусто',
  412. 'not empty': 'не пусто',
  413. 'null': 'null',
  414. 'not null': 'не null',
  415. },
  416. enterValue: 'Введите значение',
  417. addCondition: 'Добавить условие',
  418. conditionNotSetup: 'Условие НЕ настроено',
  419. selectVariable: 'Выберите переменную...',
  420. },
  421. variableAssigner: {
  422. title: 'Назначить переменные',
  423. outputType: 'Тип вывода',
  424. varNotSet: 'Переменная не установлена',
  425. noVarTip: 'Добавьте переменные, которые нужно назначить',
  426. type: {
  427. string: 'Строка',
  428. number: 'Число',
  429. object: 'Объект',
  430. array: 'Массив',
  431. },
  432. aggregationGroup: 'Группа агрегации',
  433. aggregationGroupTip: 'Включение этой функции позволяет агрегатору переменных агрегировать несколько наборов переменных.',
  434. addGroup: 'Добавить группу',
  435. outputVars: {
  436. varDescribe: 'Вывод {{groupName}}',
  437. },
  438. setAssignVariable: 'Установить переменную назначения',
  439. },
  440. assigner: {
  441. 'assignedVariable': 'Назначенная переменная',
  442. 'writeMode': 'Режим записи',
  443. 'writeModeTip': 'Режим добавления: доступен только для переменных массива.',
  444. 'over-write': 'Перезаписать',
  445. 'append': 'Добавить',
  446. 'plus': 'Плюс',
  447. 'clear': 'Очистить',
  448. 'setVariable': 'Установить переменную',
  449. 'variable': 'Переменная',
  450. },
  451. tool: {
  452. toAuthorize: 'Авторизовать',
  453. inputVars: 'Входные переменные',
  454. outputVars: {
  455. text: 'контент, сгенерированный инструментом',
  456. files: {
  457. title: 'файлы, сгенерированные инструментом',
  458. type: 'Поддерживаемый тип. Сейчас поддерживаются только изображения',
  459. transfer_method: 'Метод передачи. Значение - remote_url или local_file',
  460. url: 'URL изображения',
  461. upload_file_id: 'Идентификатор загруженного файла',
  462. },
  463. json: 'json, сгенерированный инструментом',
  464. },
  465. },
  466. questionClassifiers: {
  467. model: 'модель',
  468. inputVars: 'Входные переменные',
  469. outputVars: {
  470. className: 'Имя класса',
  471. },
  472. class: 'Класс',
  473. classNamePlaceholder: 'Введите имя вашего класса',
  474. advancedSetting: 'Расширенные настройки',
  475. topicName: 'Название темы',
  476. topicPlaceholder: 'Введите название вашей темы',
  477. addClass: 'Добавить класс',
  478. instruction: 'Инструкция',
  479. instructionTip: 'Введите дополнительные инструкции, чтобы помочь классификатору вопросов лучше понять, как классифицировать вопросы.',
  480. instructionPlaceholder: 'Введите вашу инструкцию',
  481. },
  482. parameterExtractor: {
  483. inputVar: 'Входная переменная',
  484. extractParameters: 'Извлечь параметры',
  485. importFromTool: 'Импортировать из инструментов',
  486. addExtractParameter: 'Добавить параметр для извлечения',
  487. addExtractParameterContent: {
  488. name: 'Имя',
  489. namePlaceholder: 'Имя извлекаемого параметра',
  490. type: 'Тип',
  491. typePlaceholder: 'Тип извлекаемого параметра',
  492. description: 'Описание',
  493. descriptionPlaceholder: 'Описание извлекаемого параметра',
  494. required: 'Обязательный',
  495. requiredContent: 'Обязательный используется только в качестве ссылки для вывода модели, а не для обязательной проверки вывода параметра.',
  496. },
  497. extractParametersNotSet: 'Параметры для извлечения не настроены',
  498. instruction: 'Инструкция',
  499. instructionTip: 'Введите дополнительные инструкции, чтобы помочь извлекателю параметров понять, как извлекать параметры.',
  500. advancedSetting: 'Расширенные настройки',
  501. reasoningMode: 'Режим рассуждения',
  502. reasoningModeTip: 'Вы можете выбрать соответствующий режим рассуждения, основываясь на способности модели реагировать на инструкции для вызова функций или подсказки.',
  503. isSuccess: 'Успешно. В случае успеха значение равно 1, в случае сбоя - 0.',
  504. errorReason: 'Причина ошибки',
  505. },
  506. iteration: {
  507. deleteTitle: 'Удалить узел итерации?',
  508. deleteDesc: 'Удаление узла итерации приведет к удалению всех дочерних узлов',
  509. input: 'Вход',
  510. output: 'Выходные переменные',
  511. iteration_one: '{{count}} Итерация',
  512. iteration_other: '{{count}} Итераций',
  513. currentIteration: 'Текущая итерация',
  514. },
  515. note: {
  516. addNote: 'Добавить заметку',
  517. editor: {
  518. placeholder: 'Напишите свою заметку...',
  519. small: 'Маленький',
  520. medium: 'Средний',
  521. large: 'Большой',
  522. bold: 'Жирный',
  523. italic: 'Курсив',
  524. strikethrough: 'Зачеркнутый',
  525. link: 'Ссылка',
  526. openLink: 'Открыть',
  527. unlink: 'Удалить ссылку',
  528. enterUrl: 'Введите URL...',
  529. invalidUrl: 'Неверный URL',
  530. bulletList: 'Маркированный список',
  531. showAuthor: 'Показать автора',
  532. },
  533. },
  534. },
  535. tracing: {
  536. stopBy: 'Остановлено {{user}}',
  537. },
  538. }
  539. export default translation