workflow.ts 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610
  1. const translation = {
  2. common: {
  3. undo: 'Undo',
  4. redo: 'Redo',
  5. editing: 'Editing',
  6. autoSaved: 'Auto-Saved',
  7. unpublished: 'Unpublished',
  8. published: 'Published',
  9. publish: 'Publish',
  10. update: 'Update',
  11. run: 'Run',
  12. running: 'Running',
  13. inRunMode: 'In Run Mode',
  14. inPreview: 'In Preview',
  15. inPreviewMode: 'In Preview Mode',
  16. preview: 'Preview',
  17. viewRunHistory: 'View run history',
  18. runHistory: 'Run History',
  19. goBackToEdit: 'Go back to editor',
  20. conversationLog: 'Conversation Log',
  21. features: 'Features',
  22. featuresDescription: 'Enhance web app user experience',
  23. ImageUploadLegacyTip: 'You can now create file type variables in the start form. We will no longer support the image upload feature in the future. ',
  24. fileUploadTip: 'Image upload features have been upgraded to file upload. ',
  25. featuresDocLink: 'Learn more',
  26. debugAndPreview: 'Preview',
  27. restart: 'Restart',
  28. currentDraft: 'Current Draft',
  29. currentDraftUnpublished: 'Current Draft Unpublished',
  30. latestPublished: 'Latest Published',
  31. publishedAt: 'Published',
  32. restore: 'Restore',
  33. runApp: 'Run App',
  34. batchRunApp: 'Batch Run App',
  35. accessAPIReference: 'Access API Reference',
  36. embedIntoSite: 'Embed Into Site',
  37. addTitle: 'Add title...',
  38. addDescription: 'Add description...',
  39. noVar: 'No variable',
  40. searchVar: 'Search variable',
  41. variableNamePlaceholder: 'Variable name',
  42. setVarValuePlaceholder: 'Set variable',
  43. needConnectTip: 'This step is not connected to anything',
  44. maxTreeDepth: 'Maximum limit of {{depth}} nodes per branch',
  45. needEndNode: 'The End block must be added',
  46. needAnswerNode: 'The Answer block must be added',
  47. workflowProcess: 'Workflow Process',
  48. notRunning: 'Not running yet',
  49. previewPlaceholder: 'Enter content in the box below to start debugging the Chatbot',
  50. effectVarConfirm: {
  51. title: 'Remove Variable',
  52. content: 'The variable is used in other nodes. Do you still want to remove it?',
  53. },
  54. insertVarTip: 'Press the \'/\' key to insert quickly',
  55. processData: 'Process Data',
  56. input: 'Input',
  57. output: 'Output',
  58. jinjaEditorPlaceholder: 'Type \'/\' or \'{\' to insert variable',
  59. viewOnly: 'View Only',
  60. showRunHistory: 'Show Run History',
  61. enableJinja: 'Enable Jinja template support',
  62. learnMore: 'Learn More',
  63. copy: 'Copy',
  64. duplicate: 'Duplicate',
  65. addBlock: 'Add Block',
  66. pasteHere: 'Paste Here',
  67. pointerMode: 'Pointer Mode',
  68. handMode: 'Hand Mode',
  69. model: 'Model',
  70. workflowAsTool: 'Workflow as Tool',
  71. configureRequired: 'Configure Required',
  72. configure: 'Configure',
  73. manageInTools: 'Manage in Tools',
  74. workflowAsToolTip: 'Tool reconfiguration is required after the workflow update.',
  75. viewDetailInTracingPanel: 'View details',
  76. syncingData: 'Syncing data, just a few seconds.',
  77. importDSL: 'Import DSL',
  78. importDSLTip: 'Current draft will be overwritten. Export workflow as backup before importing.',
  79. backupCurrentDraft: 'Backup Current Draft',
  80. chooseDSL: 'Choose DSL(yml) file',
  81. overwriteAndImport: 'Overwrite and Import',
  82. importFailure: 'Import failure',
  83. importSuccess: 'Import success',
  84. parallelRun: 'Parallel Run',
  85. parallelTip: {
  86. click: {
  87. title: 'Click',
  88. desc: ' to add',
  89. },
  90. drag: {
  91. title: 'Drag',
  92. desc: ' to connect',
  93. },
  94. limit: 'Parallelism is limited to {{num}} branches.',
  95. depthLimit: 'Parallel nesting layer limit of {{num}} layers',
  96. },
  97. disconnect: 'Disconnect',
  98. jumpToNode: 'Jump to this node',
  99. addParallelNode: 'Add Parallel Node',
  100. parallel: 'PARALLEL',
  101. branch: 'BRANCH',
  102. },
  103. env: {
  104. envPanelTitle: 'Environment Variables',
  105. envDescription: 'Environment variables can be used to store private information and credentials. They are read-only and can be separated from the DSL file during export.',
  106. envPanelButton: 'Add Variable',
  107. modal: {
  108. title: 'Add Environment Variable',
  109. editTitle: 'Edit Environment Variable',
  110. type: 'Type',
  111. name: 'Name',
  112. namePlaceholder: 'env name',
  113. value: 'Value',
  114. valuePlaceholder: 'env value',
  115. secretTip: 'Used to define sensitive information or data, with DSL settings configured for leak prevention.',
  116. },
  117. export: {
  118. title: 'Export Secret environment variables?',
  119. checkbox: 'Export secret values',
  120. ignore: 'Export DSL',
  121. export: 'Export DSL with secret values ',
  122. },
  123. },
  124. chatVariable: {
  125. panelTitle: 'Conversation Variables',
  126. panelDescription: 'Conversation Variables are used to store interactive information that LLM needs to remember, including conversation history, uploaded files, user preferences. They are read-write. ',
  127. docLink: 'Visit our docs to learn more.',
  128. button: 'Add Variable',
  129. modal: {
  130. title: 'Add Conversation Variable',
  131. editTitle: 'Edit Conversation Variable',
  132. name: 'Name',
  133. namePlaceholder: 'Variable name',
  134. type: 'Type',
  135. value: 'Default Value',
  136. valuePlaceholder: 'Default value, leave blank to not set',
  137. description: 'Description',
  138. descriptionPlaceholder: 'Describe the variable',
  139. editInJSON: 'Edit in JSON',
  140. oneByOne: 'Add one by one',
  141. editInForm: 'Edit in Form',
  142. arrayValue: 'Value',
  143. addArrayValue: 'Add Value',
  144. objectKey: 'Key',
  145. objectType: 'Type',
  146. objectValue: 'Default Value',
  147. },
  148. storedContent: 'Stored content',
  149. updatedAt: 'Updated at ',
  150. },
  151. changeHistory: {
  152. title: 'Change History',
  153. placeholder: 'You haven\'t changed anything yet',
  154. clearHistory: 'Clear History',
  155. hint: 'Hint',
  156. hintText: 'Your editing actions are tracked in a change history, which is stored on your device for the duration of this session. This history will be cleared when you leave the editor.',
  157. stepBackward_one: '{{count}} step backward',
  158. stepBackward_other: '{{count}} steps backward',
  159. stepForward_one: '{{count}} step forward',
  160. stepForward_other: '{{count}} steps forward',
  161. sessionStart: 'Session Start',
  162. currentState: 'Current State',
  163. nodeTitleChange: 'Block title changed',
  164. nodeDescriptionChange: 'Block description changed',
  165. nodeDragStop: 'Block moved',
  166. nodeChange: 'Block changed',
  167. nodeConnect: 'Block connected',
  168. nodePaste: 'Block pasted',
  169. nodeDelete: 'Block deleted',
  170. nodeAdd: 'Block added',
  171. nodeResize: 'Block resized',
  172. noteAdd: 'Note added',
  173. noteChange: 'Note changed',
  174. noteDelete: 'Note deleted',
  175. edgeDelete: 'Block disconnected',
  176. },
  177. errorMsg: {
  178. fieldRequired: '{{field}} is required',
  179. rerankModelRequired: 'Before turning on the Rerank Model, please confirm that the model has been successfully configured in the settings.',
  180. authRequired: 'Authorization is required',
  181. invalidJson: '{{field}} is invalid JSON',
  182. fields: {
  183. variable: 'Variable Name',
  184. variableValue: 'Variable Value',
  185. code: 'Code',
  186. model: 'Model',
  187. rerankModel: 'Rerank Model',
  188. visionVariable: 'Vision Variable',
  189. },
  190. invalidVariable: 'Invalid variable',
  191. },
  192. singleRun: {
  193. testRun: 'Test Run ',
  194. startRun: 'Start Run',
  195. running: 'Running',
  196. testRunIteration: 'Test Run Iteration',
  197. back: 'Back',
  198. iteration: 'Iteration',
  199. },
  200. tabs: {
  201. 'searchBlock': 'Search block',
  202. 'blocks': 'Blocks',
  203. 'searchTool': 'Search tool',
  204. 'tools': 'Tools',
  205. 'allTool': 'All',
  206. 'builtInTool': 'Built-in',
  207. 'customTool': 'Custom',
  208. 'workflowTool': 'Workflow',
  209. 'question-understand': 'Question Understand',
  210. 'logic': 'Logic',
  211. 'transform': 'Transform',
  212. 'utilities': 'Utilities',
  213. 'noResult': 'No match found',
  214. },
  215. blocks: {
  216. 'start': 'Start',
  217. 'end': 'End',
  218. 'answer': 'Answer',
  219. 'llm': 'LLM',
  220. 'knowledge-retrieval': 'Knowledge Retrieval',
  221. 'question-classifier': 'Question Classifier',
  222. 'if-else': 'IF/ELSE',
  223. 'code': 'Code',
  224. 'template-transform': 'Template',
  225. 'http-request': 'HTTP Request',
  226. 'variable-assigner': 'Variable Aggregator',
  227. 'variable-aggregator': 'Variable Aggregator',
  228. 'assigner': 'Variable Assigner',
  229. 'iteration-start': 'Iteration Start',
  230. 'iteration': 'Iteration',
  231. 'parameter-extractor': 'Parameter Extractor',
  232. 'document-extractor': 'Doc Extractor',
  233. 'list-operator': 'List Operator',
  234. },
  235. blocksAbout: {
  236. 'start': 'Define the initial parameters for launching a workflow',
  237. 'end': 'Define the end and result type of a workflow',
  238. 'answer': 'Define the reply content of a chat conversation',
  239. 'llm': 'Invoking large language models to answer questions or process natural language',
  240. 'knowledge-retrieval': 'Allows you to query text content related to user questions from the Knowledge',
  241. 'question-classifier': 'Define the classification conditions of user questions, LLM can define how the conversation progresses based on the classification description',
  242. 'if-else': 'Allows you to split the workflow into two branches based on if/else conditions',
  243. 'code': 'Execute a piece of Python or NodeJS code to implement custom logic',
  244. 'template-transform': 'Convert data to string using Jinja template syntax',
  245. 'http-request': 'Allow server requests to be sent over the HTTP protocol',
  246. 'variable-assigner': 'Aggregate multi-branch variables into a single variable for unified configuration of downstream nodes.',
  247. 'assigner': 'The variable assignment node is used for assigning values to writable variables(like conversation variables).',
  248. 'variable-aggregator': 'Aggregate multi-branch variables into a single variable for unified configuration of downstream nodes.',
  249. 'iteration': 'Perform multiple steps on a list object until all results are outputted.',
  250. 'parameter-extractor': 'Use LLM to extract structured parameters from natural language for tool invocations or HTTP requests.',
  251. 'document-extractor': 'Used to parse uploaded documents into text content that is easily understandable by LLM.',
  252. 'list-operator': 'Used to filter or sort array content.',
  253. },
  254. operator: {
  255. zoomIn: 'Zoom In',
  256. zoomOut: 'Zoom Out',
  257. zoomTo50: 'Zoom to 50%',
  258. zoomTo100: 'Zoom to 100%',
  259. zoomToFit: 'Zoom to Fit',
  260. },
  261. panel: {
  262. userInputField: 'User Input Field',
  263. changeBlock: 'Change Block',
  264. helpLink: 'Help Link',
  265. about: 'About',
  266. createdBy: 'Created By ',
  267. nextStep: 'Next Step',
  268. addNextStep: 'Add the next block in this workflow',
  269. selectNextStep: 'Select Next Block',
  270. runThisStep: 'Run this step',
  271. checklist: 'Checklist',
  272. checklistTip: 'Make sure all issues are resolved before publishing',
  273. checklistResolved: 'All issues are resolved',
  274. organizeBlocks: 'Organize blocks',
  275. change: 'Change',
  276. optional: '(optional)',
  277. },
  278. nodes: {
  279. common: {
  280. outputVars: 'Output Variables',
  281. insertVarTip: 'Insert Variable',
  282. memory: {
  283. memory: 'Memory',
  284. memoryTip: 'Chat memory settings',
  285. windowSize: 'Window Size',
  286. conversationRoleName: 'Conversation Role Name',
  287. user: 'User prefix',
  288. assistant: 'Assistant prefix',
  289. },
  290. memories: {
  291. title: 'Memories',
  292. tip: 'Chat memory',
  293. builtIn: 'Built-in',
  294. },
  295. },
  296. start: {
  297. required: 'required',
  298. inputField: 'Input Field',
  299. builtInVar: 'Built-in Variables',
  300. outputVars: {
  301. query: 'User input',
  302. memories: {
  303. des: 'Conversation history',
  304. type: 'message type',
  305. content: 'message content',
  306. },
  307. files: 'File list',
  308. },
  309. noVarTip: 'Set inputs that can be used in the Workflow',
  310. },
  311. end: {
  312. outputs: 'Outputs',
  313. output: {
  314. type: 'output type',
  315. variable: 'output variable',
  316. },
  317. type: {
  318. 'none': 'None',
  319. 'plain-text': 'Plain Text',
  320. 'structured': 'Structured',
  321. },
  322. },
  323. answer: {
  324. answer: 'Answer',
  325. outputVars: 'Output Variables',
  326. },
  327. llm: {
  328. model: 'model',
  329. variables: 'variables',
  330. context: 'context',
  331. contextTooltip: 'You can import Knowledge as context',
  332. notSetContextInPromptTip: 'To enable the context feature, please fill in the context variable in PROMPT.',
  333. prompt: 'prompt',
  334. roleDescription: {
  335. system: 'Give high level instructions for the conversation',
  336. user: 'Provide instructions, queries, or any text-based input to the model',
  337. assistant: 'The model’s responses based on the user messages',
  338. },
  339. addMessage: 'Add Message',
  340. vision: 'vision',
  341. files: 'Files',
  342. resolution: {
  343. name: 'Resolution',
  344. high: 'High',
  345. low: 'Low',
  346. },
  347. outputVars: {
  348. output: 'Generate content',
  349. usage: 'Model Usage Information',
  350. },
  351. singleRun: {
  352. variable: 'Variable',
  353. },
  354. sysQueryInUser: 'sys.query in user message is required',
  355. },
  356. knowledgeRetrieval: {
  357. queryVariable: 'Query Variable',
  358. knowledge: 'Knowledge',
  359. outputVars: {
  360. output: 'Retrieval segmented data',
  361. content: 'Segmented content',
  362. title: 'Segmented title',
  363. icon: 'Segmented icon',
  364. url: 'Segmented URL',
  365. metadata: 'Other metadata',
  366. },
  367. },
  368. http: {
  369. inputVars: 'Input Variables',
  370. api: 'API',
  371. apiPlaceholder: 'Enter URL, type ‘/’ insert variable',
  372. notStartWithHttp: 'API should start with http:// or https://',
  373. key: 'Key',
  374. type: 'Type',
  375. value: 'Value',
  376. bulkEdit: 'Bulk Edit',
  377. keyValueEdit: 'Key-Value Edit',
  378. headers: 'Headers',
  379. params: 'Params',
  380. body: 'Body',
  381. binaryFileVariable: 'Binary File Variable',
  382. outputVars: {
  383. body: 'Response Content',
  384. statusCode: 'Response Status Code',
  385. headers: 'Response Header List JSON',
  386. files: 'Files List',
  387. },
  388. authorization: {
  389. 'authorization': 'Authorization',
  390. 'authorizationType': 'Authorization Type',
  391. 'no-auth': 'None',
  392. 'api-key': 'API-Key',
  393. 'auth-type': 'Auth Type',
  394. 'basic': 'Basic',
  395. 'bearer': 'Bearer',
  396. 'custom': 'Custom',
  397. 'api-key-title': 'API Key',
  398. 'header': 'Header',
  399. },
  400. insertVarPlaceholder: 'type \'/\' to insert variable',
  401. timeout: {
  402. title: 'Timeout',
  403. connectLabel: 'Connection Timeout',
  404. connectPlaceholder: 'Enter connection timeout in seconds',
  405. readLabel: 'Read Timeout',
  406. readPlaceholder: 'Enter read timeout in seconds',
  407. writeLabel: 'Write Timeout',
  408. writePlaceholder: 'Enter write timeout in seconds',
  409. },
  410. },
  411. code: {
  412. inputVars: 'Input Variables',
  413. outputVars: 'Output Variables',
  414. advancedDependencies: 'Advanced Dependencies',
  415. advancedDependenciesTip: 'Add some preloaded dependencies that take more time to consume or are not default built-in here',
  416. searchDependencies: 'Search Dependencies',
  417. },
  418. templateTransform: {
  419. inputVars: 'Input Variables',
  420. code: 'Code',
  421. codeSupportTip: 'Only supports Jinja2',
  422. outputVars: {
  423. output: 'Transformed content',
  424. },
  425. },
  426. ifElse: {
  427. if: 'If',
  428. else: 'Else',
  429. elseDescription: 'Used to define the logic that should be executed when the if condition is not met.',
  430. and: 'and',
  431. or: 'or',
  432. operator: 'Operator',
  433. notSetVariable: 'Please set variable first',
  434. comparisonOperator: {
  435. 'contains': 'contains',
  436. 'not contains': 'not contains',
  437. 'start with': 'start with',
  438. 'end with': 'end with',
  439. 'is': 'is',
  440. 'is not': 'is not',
  441. 'empty': 'is empty',
  442. 'not empty': 'is not empty',
  443. 'null': 'is null',
  444. 'not null': 'is not null',
  445. 'in': 'in',
  446. 'not in': 'not in',
  447. 'all of': 'all of',
  448. 'exists': 'exists',
  449. 'not exists': 'not exists',
  450. },
  451. optionName: {
  452. image: 'Image',
  453. doc: 'Doc',
  454. audio: 'Audio',
  455. video: 'Video',
  456. localUpload: 'Local Upload',
  457. url: 'URL',
  458. },
  459. enterValue: 'Enter value',
  460. addCondition: 'Add Condition',
  461. conditionNotSetup: 'Condition NOT setup',
  462. selectVariable: 'Select variable...',
  463. addSubVariable: 'Sub Variable',
  464. select: 'Select',
  465. },
  466. variableAssigner: {
  467. title: 'Assign variables',
  468. outputType: 'Output Type',
  469. varNotSet: 'Variable not set',
  470. noVarTip: 'Add the variables to be assigned',
  471. type: {
  472. string: 'String',
  473. number: 'Number',
  474. object: 'Object',
  475. array: 'Array',
  476. },
  477. aggregationGroup: 'Aggregation Group',
  478. aggregationGroupTip: 'Enabling this feature allows the variable aggregator to aggregate multiple sets of variables.',
  479. addGroup: 'Add Group',
  480. outputVars: {
  481. varDescribe: '{{groupName}} output',
  482. },
  483. setAssignVariable: 'Set assign variable',
  484. },
  485. assigner: {
  486. 'assignedVariable': 'Assigned Variable',
  487. 'writeMode': 'Write Mode',
  488. 'writeModeTip': 'Append mode: Available for array variables only.',
  489. 'over-write': 'Overwrite',
  490. 'append': 'Append',
  491. 'plus': 'Plus',
  492. 'clear': 'Clear',
  493. 'setVariable': 'Set Variable',
  494. 'variable': 'Variable',
  495. },
  496. tool: {
  497. toAuthorize: 'To authorize',
  498. inputVars: 'Input Variables',
  499. outputVars: {
  500. text: 'tool generated content',
  501. files: {
  502. title: 'tool generated files',
  503. type: 'Support type. Now only support image',
  504. transfer_method: 'Transfer method.Value is remote_url or local_file',
  505. url: 'Image url',
  506. upload_file_id: 'Upload file id',
  507. },
  508. json: 'tool generated json',
  509. },
  510. },
  511. questionClassifiers: {
  512. model: 'model',
  513. inputVars: 'Input Variables',
  514. outputVars: {
  515. className: 'Class Name',
  516. },
  517. class: 'Class',
  518. classNamePlaceholder: 'Write your class name',
  519. advancedSetting: 'Advanced Setting',
  520. topicName: 'Topic Name',
  521. topicPlaceholder: 'Write your topic name',
  522. addClass: 'Add Class',
  523. instruction: 'Instruction',
  524. instructionTip: 'Input additional instructions to help the question classifier better understand how to categorize questions.',
  525. instructionPlaceholder: 'Write your instruction',
  526. },
  527. parameterExtractor: {
  528. inputVar: 'Input Variable',
  529. extractParameters: 'Extract Parameters',
  530. importFromTool: 'Import from tools',
  531. addExtractParameter: 'Add Extract Parameter',
  532. addExtractParameterContent: {
  533. name: 'Name',
  534. namePlaceholder: 'Extract Parameter Name',
  535. type: 'Type',
  536. typePlaceholder: 'Extract Parameter Type',
  537. description: 'Description',
  538. descriptionPlaceholder: 'Extract Parameter Description',
  539. required: 'Required',
  540. requiredContent: 'Required is only used as a reference for model inference, and not for mandatory validation of parameter output.',
  541. },
  542. extractParametersNotSet: 'Extract Parameters not setup',
  543. instruction: 'Instruction',
  544. instructionTip: 'Input additional instructions to help the parameter extractor understand how to extract parameters.',
  545. advancedSetting: 'Advanced Setting',
  546. reasoningMode: 'Reasoning Mode',
  547. reasoningModeTip: 'You can choose the appropriate reasoning mode based on the model\'s ability to respond to instructions for function calling or prompts.',
  548. isSuccess: 'Is Success.On success the value is 1, on failure the value is 0.',
  549. errorReason: 'Error Reason',
  550. },
  551. iteration: {
  552. deleteTitle: 'Delete Iteration Node?',
  553. deleteDesc: 'Deleting the iteration node will delete all child nodes',
  554. input: 'Input',
  555. output: 'Output Variables',
  556. iteration_one: '{{count}} Iteration',
  557. iteration_other: '{{count}} Iterations',
  558. currentIteration: 'Current Iteration',
  559. },
  560. note: {
  561. addNote: 'Add Note',
  562. editor: {
  563. placeholder: 'Write your note...',
  564. small: 'Small',
  565. medium: 'Medium',
  566. large: 'Large',
  567. bold: 'Bold',
  568. italic: 'Italic',
  569. strikethrough: 'Strikethrough',
  570. link: 'Link',
  571. openLink: 'Open',
  572. unlink: 'Unlink',
  573. enterUrl: 'Enter URL...',
  574. invalidUrl: 'Invalid URL',
  575. bulletList: 'Bullet List',
  576. showAuthor: 'Show Author',
  577. },
  578. },
  579. docExtractor: {
  580. inputVar: 'Input Variable',
  581. outputVars: {
  582. text: 'Extracted text',
  583. },
  584. supportFileTypes: 'Support file types: {{types}}.',
  585. learnMore: 'Learn more',
  586. },
  587. listFilter: {
  588. inputVar: 'Input Variable',
  589. filterCondition: 'Filter Condition',
  590. filterConditionKey: 'Filter Condition Key',
  591. filterConditionComparisonOperator: 'Filter Condition Comparison Operator',
  592. filterConditionComparisonValue: 'Filter Condition value',
  593. selectVariableKeyPlaceholder: 'Select sub variable key',
  594. limit: 'Top N',
  595. orderBy: 'Order by',
  596. asc: 'ASC',
  597. desc: 'DESC',
  598. outputVars: {
  599. result: 'Filter result',
  600. first_record: 'First record',
  601. last_record: 'Last record',
  602. },
  603. },
  604. },
  605. tracing: {
  606. stopBy: 'Stop by {{user}}',
  607. },
  608. }
  609. export default translation