mirror of
https://gh.wpcy.net/https://github.com/discourse/discourse.git
synced 2026-06-19 01:28:07 +08:00
Previously, admins could only build Discourse Workflows by manually adding and connecting every trigger, condition, and action node on the canvas. This change adds an AI authoring assistant, gated behind `discourse_workflows_ai_authoring_enabled` and DiscourseAi, that turns a natural-language request into a server-validated, reviewable workflow patch the admin applies. It only ever proposes drafts and never publishes. --------- Co-authored-by: chapoi <101828855+chapoi@users.noreply.github.com> Co-authored-by: Rafael Silva <xfalcox@gmail.com> Co-authored-by: Joffrey JAFFEUX <j.jaffeux@gmail.com>
1123 lines
50 KiB
YAML
Vendored
1123 lines
50 KiB
YAML
Vendored
en:
|
|
admin_js:
|
|
admin:
|
|
logs:
|
|
staff_actions:
|
|
actions:
|
|
discourse_workflows_credential_created: "Create workflow credential"
|
|
discourse_workflows_credential_destroyed: "Delete workflow credential"
|
|
discourse_workflows_credential_updated: "Update workflow credential"
|
|
discourse_workflows_data_table_column_created: "Create workflow data table column"
|
|
discourse_workflows_data_table_column_destroyed: "Delete workflow data table column"
|
|
discourse_workflows_data_table_column_renamed: "Rename workflow data table column"
|
|
discourse_workflows_data_table_created: "Create workflow data table"
|
|
discourse_workflows_data_table_destroyed: "Delete workflow data table"
|
|
discourse_workflows_data_table_updated: "Update workflow data table"
|
|
discourse_workflows_variable_created: "Create workflow variable"
|
|
discourse_workflows_variable_destroyed: "Delete workflow variable"
|
|
discourse_workflows_variable_updated: "Update workflow variable"
|
|
discourse_workflows_ai_proposal_applied: "Apply AI workflow proposal"
|
|
discourse_workflows_workflow_created: "Create workflow"
|
|
discourse_workflows_workflow_destroyed: "Delete workflow"
|
|
js:
|
|
discourse_ai:
|
|
features:
|
|
discourse_workflows:
|
|
name: "Workflows"
|
|
description: "AI-assisted workflow authoring"
|
|
workflow_authoring: "Workflow authoring"
|
|
discourse_workflows:
|
|
actor:
|
|
system: "System user"
|
|
anonymous: "Anonymous user"
|
|
user: "Specific user"
|
|
node_unavailable:
|
|
default: "This node is currently unavailable"
|
|
short: "Unavailable"
|
|
node_issues:
|
|
title: "Configuration issues"
|
|
required: "%{label} is required"
|
|
unknown: "%{label}: %{message}"
|
|
header_auth:
|
|
name: "Header name"
|
|
value: "Header value"
|
|
run_scope:
|
|
per_item: "One run per item"
|
|
all_items: "One run for all items"
|
|
admin:
|
|
title: "Workflows"
|
|
ai:
|
|
button: "Build with AI"
|
|
title: "Workflow assistant"
|
|
subtitle: "Create automatic drafts. Publishing stays manual."
|
|
close: "Close workflow assistant"
|
|
description: "Describe a change, then generate a draft to review. Publishing stays manual."
|
|
review_description: "Review this draft, then apply it when it looks right."
|
|
prompt_label: "What should change?"
|
|
prompt_placeholder: "Example: When a new support topic is created, tag it needs-review and reply with a checklist."
|
|
generate: "Generate draft"
|
|
apply: "Apply draft"
|
|
back_to_prompt: "Edit request"
|
|
start_over: "Start over"
|
|
applied: "AI workflow proposal applied to the draft. Publish when you're ready."
|
|
risks: "Risks"
|
|
created_agents: "AI agents to create"
|
|
created_agent_system_prompt: "System prompt"
|
|
questions: "Questions"
|
|
status_idle: "Ready"
|
|
status_working: "Working"
|
|
status_ready: "Draft ready"
|
|
status_error: "Needs attention"
|
|
unexpected_error: "Something went wrong while generating the draft. Please try again."
|
|
needs_clarification: "Choose an answer, or type a custom response, so the assistant can continue."
|
|
clarification_intro: "Choose the best option for this question. Use custom answer when the options do not fit."
|
|
question_progress: "Question %{current} of %{total}"
|
|
next_question: "Next question"
|
|
previous_question: "Previous question"
|
|
continue: "Continue"
|
|
custom_answer: "Custom answer"
|
|
custom_answer_placeholder: "Type a different answer…"
|
|
code_node: "Code node"
|
|
script_preview: "Code script preview"
|
|
script_mode: "Mode: %{mode}"
|
|
script_validation_passed: "Script validation passed"
|
|
script_validation_failed: "Script validation failed"
|
|
progress_title: "Progress"
|
|
progress:
|
|
queued: "Workflow authoring request queued"
|
|
loading_context: "Loading workflow authoring context"
|
|
planning: "Asking the workflow authoring agent to draft a response"
|
|
writing_scripts: "Reviewing generated Code node scripts"
|
|
validating_scripts: "Validating generated Code node scripts"
|
|
validating_patch: "Validating workflow patch"
|
|
drafting_response: "Drafting workflow authoring response"
|
|
writing_response: "Writing workflow authoring response"
|
|
using_tool: "Using %{tool}"
|
|
tool_finished: "Finished %{tool}"
|
|
summarizing: "Preparing workflow authoring response"
|
|
title: "Workflows"
|
|
templates:
|
|
title: "Templates"
|
|
description: "Start with a pre-built workflow template"
|
|
new_workflow: "New workflow"
|
|
default_workflow_name: "My workflow"
|
|
delete: "Delete"
|
|
edit: "Edit"
|
|
save: "Save"
|
|
cancel: "Cancel"
|
|
more_options: "More options"
|
|
publish: "Publish"
|
|
discard_changes: "Discard changes"
|
|
discard_changes_confirmation: "Discard unpublished changes? This will restore the published workflow and remove the current draft."
|
|
published: "Published"
|
|
unpublish: "Unpublish"
|
|
unpublished: "Unpublished"
|
|
unpublished_changes: "Unpublished changes"
|
|
unpublished_changes_message: "You have unpublished changes"
|
|
unpublished_changes_message_detail: "Publish to make them live"
|
|
unpublished_changes_confirmation: "This workflow has unpublished changes. If you leave now, those changes will stay in draft and won't run until you publish them."
|
|
leave_without_publishing: "Leave without publishing"
|
|
keep_editing: "Keep editing"
|
|
workflow_name: "Workflow name"
|
|
last_editor: "Last editor"
|
|
last_update: "Last update"
|
|
last_run: "Last run"
|
|
status: "Status"
|
|
last_execution_never: "Never"
|
|
last_execution_failed: "Last execution failed"
|
|
create_first_workflow: "Create your first workflow"
|
|
empty_title: "%{username}, let's set up a workflow"
|
|
empty_description: "Workflows automate tasks by connecting triggers, conditions, and actions into a visual flow"
|
|
delete_confirm: "Are you sure you want to delete the workflow \"%{name}\"?"
|
|
tabs:
|
|
workflow: "Workflow"
|
|
executions: "Executions"
|
|
settings: "Settings"
|
|
versions: "Versions"
|
|
data_tables: "Data tables"
|
|
templates: "Templates"
|
|
credentials: "Credentials"
|
|
variables: "Variables"
|
|
all_workflows: "All workflows"
|
|
settings:
|
|
saved: "Settings saved"
|
|
error_workflow: "Error workflow"
|
|
error_workflow_description: "When this workflow fails, trigger the selected error workflow. If none is selected and this workflow has an Error trigger, it handles its own errors."
|
|
error_workflow_none: "None"
|
|
no_error_workflows_available: "No workflows with an Error trigger node are available"
|
|
timezone: "Timezone"
|
|
timezone_description: "Schedule triggers use this timezone. If unset, they use the site timezone."
|
|
danger_zone: "Danger zone"
|
|
delete_description: "Permanently delete this workflow and all its executions. This action cannot be undone."
|
|
versions:
|
|
title: "Versions"
|
|
version: "Version"
|
|
version_number: "Version %{number}"
|
|
author: "Author"
|
|
changed_at: "Changed"
|
|
current: "Current"
|
|
live: "Live"
|
|
revert: "Revert"
|
|
revert_confirm: "Revert the draft to version %{version}? You can review it in the editor and publish when ready."
|
|
reverted: "Reverted to version %{version}"
|
|
empty_title: "No versions yet"
|
|
empty_description: "Each time you save changes, a new version is recorded here."
|
|
add_node:
|
|
title: "Add step"
|
|
first_step: "Add first step"
|
|
browse_templates: "Browse templates"
|
|
search: "Search steps..."
|
|
categories:
|
|
discourse_triggers: "Discourse triggers"
|
|
triggers: "Triggers"
|
|
discourse_actions: "Discourse actions"
|
|
ai: "AI"
|
|
data: "Data transformation"
|
|
utilities: "Utilities"
|
|
flow: "Flow"
|
|
human_review: "Human review"
|
|
configurator:
|
|
title: "Configure"
|
|
save: "Done"
|
|
saving: "Saving"
|
|
saved: "Saved"
|
|
no_configuration: "This node has no configurable options"
|
|
description: "Note"
|
|
description_placeholder: "Add a note about this step..."
|
|
always_output_data: "Always output data"
|
|
always_output_data_help: "If on, this node emits an empty item when it would otherwise produce no items, so the next node still runs."
|
|
tabs:
|
|
parameters: "Parameters"
|
|
settings: "Settings"
|
|
drag_drop_hint_title: "Tip"
|
|
drag_drop_hint: "Drag and drop a property from this panel into a field"
|
|
output_context: "Output"
|
|
no_input_context: "No input data yet. It will appear after the first run."
|
|
no_input_fields: "No input fields"
|
|
environment: "Environment"
|
|
no_output_context: "No output data"
|
|
no_output_fields: "No output fields"
|
|
no_output_context_run_to_discover: "Run the workflow to discover output fields"
|
|
schema_input_label: "Input %{number}"
|
|
schema_item_count:
|
|
one: "%{count} item"
|
|
other: "%{count} items"
|
|
nodes:
|
|
"trigger:topic_closed": "Topic closed"
|
|
"trigger:post_created": "Post created"
|
|
"trigger:post_edited": "Post edited"
|
|
"trigger:post_moved": "Post moved"
|
|
"trigger:topic_created": "Topic created"
|
|
"trigger:topic_category_changed": "Topic category changed"
|
|
"trigger:topic_tag_changed": "Topic tag changed"
|
|
"trigger:reviewable_approved": "Approved reviewable"
|
|
"trigger:webhook": "Webhook"
|
|
"trigger:manual": "Manual trigger"
|
|
"condition:if": "If"
|
|
"condition:filter": "Filter"
|
|
"action:topic_tags": "Topic tags"
|
|
"action:code": "Code"
|
|
"action:topic": "Topic"
|
|
"action:post": "Post"
|
|
"action:send_personal_message": "Send personal message"
|
|
"action:set_fields": "Set fields"
|
|
"trigger:stale_topic": "Stale topic"
|
|
"trigger:schedule": "Schedule"
|
|
"flow:merge": "Merge"
|
|
"flow:loop_over_items": "Loop over items"
|
|
"action:split_out": "Split out"
|
|
"action:sort": "Sort"
|
|
"action:http_request": "HTTP request"
|
|
"action:data_table": "Data table"
|
|
"action:group": "Group"
|
|
"action:badge": "Badge"
|
|
"trigger:form": "Form trigger"
|
|
"action:form": "Form"
|
|
"action:limit": "Limit"
|
|
"action:log": "Log"
|
|
"action:markdown_table": "Markdown table"
|
|
"action:template": "Template"
|
|
"action:respond_to_webhook": "Respond to webhook"
|
|
"trigger:topic_admin_button": "Topic admin button"
|
|
"trigger:error": "Error trigger"
|
|
"flow:wait": "Wait"
|
|
"action:modal": "Modal"
|
|
node_descriptions:
|
|
"trigger:topic_closed": "Fires when a topic is closed by a user or auto-close timer"
|
|
"trigger:post_created": "Fires when a new post or reply is created"
|
|
"trigger:post_edited": "Fires after the first post in a topic is edited and cooked"
|
|
"trigger:post_moved": "Fires when a post is moved to another topic"
|
|
"trigger:topic_created": "Fires when a new topic is created"
|
|
"trigger:topic_category_changed": "Fires when a topic is moved to a different category"
|
|
"trigger:topic_tag_changed": "Fires when tags are added to or removed from a topic"
|
|
"trigger:reviewable_approved": "Fires when a reviewable is approved"
|
|
"trigger:webhook": "Fires when an external service sends a webhook request"
|
|
"trigger:manual": "Fires when triggered manually by an admin"
|
|
"condition:if": "Branch the workflow based on a condition"
|
|
"condition:filter": "Continue only if conditions are met"
|
|
"action:topic_tags": "Add or remove tags on a topic"
|
|
"action:code": "Run custom JavaScript code"
|
|
"action:topic": "Create, retrieve, list, close, archive, or set custom fields on topics"
|
|
"action:post": "Create, edit, retrieve, or list posts"
|
|
"action:send_personal_message": "Send a personal message to users or groups"
|
|
"action:set_fields": "Set or modify data fields in the workflow context"
|
|
"trigger:stale_topic": "Fires when a topic has had no activity for a period"
|
|
"trigger:schedule": "Fires on a recurring schedule"
|
|
"flow:merge": "Merge data from multiple workflow branches"
|
|
"flow:loop_over_items": "Iterate over a list of items and run steps for each"
|
|
"action:split_out": "Split an array into individual items for parallel processing"
|
|
"action:sort": "Sort items by field values, randomly, or with custom code"
|
|
"action:http_request": "Make an HTTP request to an external API"
|
|
"action:data_table": "Read, write, or query a workflow data table"
|
|
"action:group": "Read, check, or update group membership"
|
|
"action:badge": "Grant or revoke a badge"
|
|
"trigger:form": "Generates a public web form and fires when it is submitted"
|
|
"action:form": "Adds a page to a multi-step form"
|
|
"action:limit": "Keep only the first or last N items"
|
|
"action:log": "Record key/value data to the execution log without affecting the workflow"
|
|
"action:markdown_table": "Build a markdown table from a list of items"
|
|
"action:template": "Render text with a template"
|
|
"action:respond_to_webhook": "Send a custom HTTP response to the webhook caller"
|
|
"trigger:topic_admin_button": "Adds a button to the topic admin menu that triggers this workflow"
|
|
"trigger:error": "Fires when another workflow fails"
|
|
"flow:wait": "Pause workflow execution and resume after a delay or webhook callback"
|
|
"action:modal": "Shows a modal to a user and waits for them to choose an option"
|
|
topic_admin_button:
|
|
label: "Button label"
|
|
label_placeholder: "Run workflow"
|
|
icon: "Button icon"
|
|
modal:
|
|
target_user: "Target user"
|
|
target_user_placeholder: "Defaults to the user who triggered the workflow"
|
|
title: "Title"
|
|
title_placeholder: "Title shown at the top of the modal"
|
|
body: "Body"
|
|
body_placeholder: "Message shown to the user..."
|
|
buttons: "Buttons"
|
|
add_button: "Add button"
|
|
label: "Label"
|
|
label_placeholder: "Approve"
|
|
value: "Value"
|
|
value_placeholder: "approve"
|
|
style: "Style"
|
|
style_default: "Default"
|
|
style_primary: "Primary"
|
|
style_danger: "Danger"
|
|
if:
|
|
no_conditions_body: "Conditions are used to filter items based on their values"
|
|
add_condition: "Add condition"
|
|
conditions: "Conditions"
|
|
column: "Column"
|
|
field: "Field"
|
|
operator: "Operator"
|
|
value: "Value"
|
|
combinator:
|
|
title: "Match mode"
|
|
all: "All conditions must pass"
|
|
any: "Any condition can pass"
|
|
operators:
|
|
equals: "equals"
|
|
not_equals: "does not equal"
|
|
contains: "contains"
|
|
not_contains: "does not contain"
|
|
empty: "is empty"
|
|
not_empty: "is not empty"
|
|
gt: "greater than"
|
|
lt: "less than"
|
|
gte: "greater than or equal"
|
|
lte: "less than or equal"
|
|
"true": "is true"
|
|
"false": "is false"
|
|
topic_tags:
|
|
operation: "Operation"
|
|
operations:
|
|
add: "Add tag"
|
|
remove: "Remove tag"
|
|
topic_id: "Topic ID"
|
|
tag_names: "Tags"
|
|
actor_username: "Performed by user"
|
|
limit:
|
|
max_items: "Max items"
|
|
keep: "Keep"
|
|
keep_first: "First items"
|
|
keep_last: "Last items"
|
|
group:
|
|
operation: "Operation"
|
|
operations:
|
|
add: "Add user"
|
|
remove: "Remove user"
|
|
get: "Get group"
|
|
check_membership: "Check membership"
|
|
username: "User"
|
|
group_id: "Group"
|
|
group_id_placeholder: "Select a group"
|
|
manage_groups: "Manage groups"
|
|
actor_username: "Performed by user"
|
|
badge:
|
|
operation: "Operation"
|
|
operations:
|
|
grant: "Grant badge"
|
|
revoke: "Revoke badge"
|
|
username: "User"
|
|
badge_id: "Badge"
|
|
badge_id_placeholder: "Select a badge"
|
|
actor_username: "Performed by user"
|
|
send_personal_message:
|
|
recipient_usernames: "Recipients"
|
|
recipient_usernames_description: "Select one or more users"
|
|
recipient_group_names: "Recipient groups"
|
|
recipient_group_names_description: "Select one or more groups"
|
|
title: "Title"
|
|
raw: "Body"
|
|
raw_description: "Raw content for the personal message"
|
|
sender_username: "Sender"
|
|
post:
|
|
operation: "Operation"
|
|
operations:
|
|
create: "Create post"
|
|
edit: "Edit post"
|
|
get: "Get post"
|
|
list: "List posts"
|
|
topic_id: "Topic ID"
|
|
raw: "Body"
|
|
raw_description: "Raw content for the post"
|
|
reply_to_post_number: "Reply to post number"
|
|
reply_to_post_number_description: "Reply to a specific post number in the topic"
|
|
whisper: "Create as whisper"
|
|
whisper_description: "Create the post as a whisper. The author must be allowed to create whispers."
|
|
author_username: "Author"
|
|
post_id: "Post ID"
|
|
editor_username: "Editor"
|
|
include_raw: "Include raw"
|
|
include_cooked: "Include cooked"
|
|
query: "Query"
|
|
query_description: "Filter query using PostsFilter syntax (e.g. category:support username:system order:latest)"
|
|
query_placeholder: "Filter posts by category, tag, author, keywords, or other criteria"
|
|
created_after: "Created after"
|
|
created_before: "Created before"
|
|
topic_created_after: "Topic created after"
|
|
topic_created_before: "Topic created before"
|
|
categories: "Categories"
|
|
categories_description: "Category IDs, slugs, or names, separated by commas"
|
|
exclude_categories: "Exclude categories"
|
|
exact_category_match: "Exact category match"
|
|
exact_category_match_description: "Exclude subcategories when matching categories"
|
|
tags: "Tags"
|
|
exclude_tags: "Exclude tags"
|
|
topics: "Topics"
|
|
topics_description: "Topic IDs separated by commas"
|
|
usernames: "Users"
|
|
usernames_description: "Usernames separated by commas"
|
|
groups: "Groups"
|
|
groups_description: "Group names separated by commas"
|
|
post_type: "Post type"
|
|
post_types:
|
|
regular: "Regular posts only"
|
|
all: "All visible post types"
|
|
first: "First posts only"
|
|
reply: "Replies only"
|
|
moderator_action: "Moderator action posts only"
|
|
small_action: "Small action posts only"
|
|
whisper: "Whispers only"
|
|
status: "Status"
|
|
statuses:
|
|
any: "Any status"
|
|
open: "Open"
|
|
closed: "Closed"
|
|
archived: "Archived"
|
|
listed: "Listed"
|
|
unlisted: "Unlisted"
|
|
deleted: "Deleted"
|
|
public: "Public"
|
|
noreplies: "No replies"
|
|
single_user: "Single user"
|
|
keywords: "Keywords"
|
|
keywords_description: "Keywords separated by commas"
|
|
topic_keywords: "Topic keywords"
|
|
order: "Order"
|
|
orders:
|
|
latest: "Latest posts"
|
|
oldest: "Oldest posts"
|
|
latest_topic: "Latest topics"
|
|
oldest_topic: "Oldest topics"
|
|
likes: "Most liked"
|
|
limit: "Limit"
|
|
limit_description: "Maximum number of posts to return (1-500, default 30)"
|
|
offset: "Offset"
|
|
advanced_filter: "Advanced filter"
|
|
advanced_filter_description: "Additional PostsFilter query string appended to the configured filters"
|
|
actor_username: "Performed by user"
|
|
topic:
|
|
operation: "Operation"
|
|
operations:
|
|
create: "Create topic"
|
|
get: "Get topic"
|
|
list: "List topics"
|
|
close: "Close topic"
|
|
archive: "Archive topic"
|
|
set_custom_fields: "Set custom fields"
|
|
topic_id: "Topic ID"
|
|
title: "Title"
|
|
raw: "Body"
|
|
raw_description: "Raw content for the first post"
|
|
category_id: "Category"
|
|
tag_names: "Tags"
|
|
query: "Query"
|
|
query_description: "Filter query using the same syntax as `/filter` (e.g. category:support status:open order:activity)"
|
|
query_placeholder: "category:support status:open"
|
|
custom_field_names: "Include custom fields"
|
|
custom_field_names_placeholder: "Select custom fields"
|
|
custom_fields: "Custom fields"
|
|
key: "Key"
|
|
value: "Value"
|
|
add_custom_field: "Add custom field"
|
|
limit: "Limit"
|
|
limit_description: "Maximum number of topics to return (1-100, default 30)"
|
|
offset: "Offset"
|
|
offset_description: "Number of matching topics to skip before returning results"
|
|
actor_username: "Performed by user"
|
|
set_fields:
|
|
mode: "Mode"
|
|
mode_manual: "Manual"
|
|
mode_raw: "JSON"
|
|
assignments: "Fields"
|
|
json_output: "JSON"
|
|
include_other_fields: "Include input fields"
|
|
include: "Input fields to include"
|
|
include_all: "All"
|
|
include_selected: "Selected"
|
|
include_except: "All except"
|
|
include_fields: "Fields to include"
|
|
include_fields_placeholder: "company, id"
|
|
exclude_fields: "Fields to exclude"
|
|
exclude_fields_placeholder: "debug, internal.notes"
|
|
type_string: "String"
|
|
type_number: "Number"
|
|
type_boolean: "Boolean"
|
|
type_array: "Array"
|
|
type_object: "Object"
|
|
add_field: "Add field"
|
|
code:
|
|
mode: "Mode"
|
|
mode_description: "Choose whether the code runs once per item or once for all items"
|
|
mode_run_once_for_each_item: "Run once for each item"
|
|
mode_run_once_for_all_items: "Run once for all items"
|
|
code: "JavaScript code"
|
|
code_description: "Access the previous step's output via $json. Return an object to pass data to the next step."
|
|
parameter_field:
|
|
fixed: "Fixed"
|
|
plain: "Plain"
|
|
dynamic: "Dynamic"
|
|
expression_preview:
|
|
result: "Result"
|
|
empty: "Empty"
|
|
undefined: "Undefined"
|
|
invalid: "Invalid JavaScript"
|
|
warning: "Missing function call"
|
|
pending: "Not resolved yet"
|
|
expression_docs:
|
|
sections:
|
|
previous_nodes: "Previous nodes"
|
|
vars:
|
|
input: "Current node input helpers. Use $input.item, $input.all(), $input.first(), $input.last(), or $input.params."
|
|
item_index: "Index of the input item currently being processed."
|
|
json: "JSON data of the current input item. Shorthand for $input.item.json."
|
|
trigger: "Alias for $json — the trigger node's output data."
|
|
site_settings: "Access Discourse site settings. Example: $site_settings.title"
|
|
current_user: "The user who triggered the workflow. Properties: id, username"
|
|
workflow_vars: "Workflow variables defined in the admin panel."
|
|
execution: "Execution metadata: id, workflow_id, workflow_name"
|
|
node_ref: "Reference a previous node's output. Example: $('Node Name').item.json"
|
|
methods:
|
|
input:
|
|
all: "Returns an array of the current node's input items."
|
|
first: "Returns the current node's first input item."
|
|
last: "Returns the current node's last input item."
|
|
property_engine:
|
|
add_item: "Add item"
|
|
add_option: "Add option"
|
|
add_field: "Add field"
|
|
remove_item: "Remove item"
|
|
dynamic_hint: "Must resolve to %{value}."
|
|
dynamic_values:
|
|
badge_id: "a badge ID"
|
|
boolean: "true or false"
|
|
category_id: "a category ID"
|
|
chat_channel_id: "a chat channel ID"
|
|
column_name: "a column name"
|
|
data_table_id: "a data table ID"
|
|
group_id: "a group ID"
|
|
group_names: "group names"
|
|
id: "an ID"
|
|
number: "a number"
|
|
option_value: "an option value"
|
|
query_id: "a query ID"
|
|
tag_names: "tag names"
|
|
username: "a username"
|
|
usernames: "usernames"
|
|
user_or_group_name: "a username or group name"
|
|
add_attributes: "Attributes"
|
|
assignment_name: "Name"
|
|
assignment_type: "Type"
|
|
assignment_value: "Value"
|
|
max_items_reached:
|
|
one: "Limited to %{count} item"
|
|
other: "Limited to %{count} items"
|
|
webhook:
|
|
http_method: "HTTP method"
|
|
path: "Path"
|
|
path_placeholder: "my-webhook"
|
|
url_preview: "Webhook URL"
|
|
click_to_copy: "Click to copy"
|
|
copy_test_url: "Copy test URL"
|
|
listening_seconds: "Listening for test event for %{seconds}s"
|
|
cancel_test_listener: "Cancel"
|
|
response_mode: "Respond"
|
|
response_mode_on_received: "Immediately"
|
|
response_mode_last_node: "When last node finishes"
|
|
response_mode_response_node: "Using Respond to webhook node"
|
|
response_code: "Response code"
|
|
response_data: "Response data"
|
|
response_data_first_entry_json: "First entry JSON"
|
|
response_data_all_entries: "All entries"
|
|
response_data_no_data: "No data"
|
|
response_body: "Response body"
|
|
no_response_body: "No response body"
|
|
response_headers: "Response headers"
|
|
add_response_header: "Add response header"
|
|
ip_allowlist: "IP allowlist"
|
|
ignore_bots: "Ignore bots"
|
|
authentication: "Authentication"
|
|
authentication_none: "None"
|
|
authentication_basic_auth: "Basic auth"
|
|
authentication_bearer_auth: "Bearer token"
|
|
authentication_header_auth: "Header auth"
|
|
credential: "Credential"
|
|
stale_topic:
|
|
hours: "Hours with no reply"
|
|
description: "Fires when a topic has had no replies for the specified number of hours"
|
|
category_id: "Category"
|
|
category_id_description: "Only consider topics in this category"
|
|
include_subcategories: "Include subcategories"
|
|
tag_names: "Tags"
|
|
tag_names_description: "Only consider topics that have at least one of these tags"
|
|
topic_closed:
|
|
category_id: "Category"
|
|
category_id_description: "Only trigger for topics in this category"
|
|
tag_names: "Tags"
|
|
tag_names_description: "Only trigger for topics that have at least one of these tags"
|
|
post_created:
|
|
topic_type: "Topic type"
|
|
topic_type_description: "Choose whether topics, personal messages, or both should trigger the workflow"
|
|
topic_type_all: "All"
|
|
topic_type_topics: "Topics"
|
|
topic_type_personal_messages: "Personal messages"
|
|
group_inbox_id: "Group inbox"
|
|
group_inbox_id_description: "Only trigger for personal messages in this group inbox"
|
|
group_inbox_id_placeholder: "All group inboxes"
|
|
category_id: "Category"
|
|
category_id_description: "Only trigger for posts in this category"
|
|
include_subcategories: "Include subcategories"
|
|
tag_names: "Tags"
|
|
tag_names_description: "Only trigger for posts in topics that have at least one of these tags"
|
|
post_edited:
|
|
category_id: "Category"
|
|
category_id_description: "Only trigger for posts in this category"
|
|
tag_names: "Tags"
|
|
tag_names_description: "Only trigger for posts in topics that have at least one of these tags"
|
|
post_scope: "Post scope"
|
|
post_scope_description: "Choose which posts should trigger the workflow"
|
|
post_scope_first_post: "First post"
|
|
post_scope_replies: "Replies"
|
|
post_scope_all_posts: "All posts"
|
|
trust_levels: "Trust levels"
|
|
trust_levels_description: "Only trigger for posts created by users with these trust levels"
|
|
post_moved:
|
|
category_id: "Destination category"
|
|
category_id_description: "Only trigger for posts moved into this category"
|
|
tag_names: "Destination tags"
|
|
tag_names_description: "Only trigger for posts moved into topics that have at least one of these tags"
|
|
topic_created:
|
|
topic_type: "Topic type"
|
|
topic_type_description: "Choose whether topics, personal messages, or both should trigger the workflow"
|
|
topic_type_all: "All"
|
|
topic_type_topics: "Topics"
|
|
topic_type_personal_messages: "Personal messages"
|
|
group_inbox_id: "Group inbox"
|
|
group_inbox_id_description: "Only trigger for personal messages in this group inbox"
|
|
group_inbox_id_placeholder: "All group inboxes"
|
|
category_id: "Category"
|
|
category_id_description: "Only trigger for topics in this category"
|
|
include_subcategories: "Include subcategories"
|
|
tag_names: "Tags"
|
|
tag_names_description: "Only trigger for topics that have at least one of these tags"
|
|
topic_tag_changed:
|
|
category_id: "Category"
|
|
category_id_description: "Only trigger for topics in this category"
|
|
reviewable_approved:
|
|
reviewable_types: "Reviewable types"
|
|
reviewable_types_description: "Only trigger for these reviewable types"
|
|
reviewable_types_placeholder: "All types"
|
|
schedule:
|
|
rule: "Trigger rules"
|
|
add_rule: "Add rule"
|
|
field: "Trigger interval"
|
|
field_minutes: "Minutes"
|
|
field_hours: "Hours"
|
|
field_days: "Days"
|
|
field_weeks: "Weeks"
|
|
field_months: "Months"
|
|
field_cron_expression: "Custom (Cron)"
|
|
minutes_interval: "Minutes between triggers"
|
|
minutes_interval_description: "Must be in range 1-59"
|
|
hours_interval: "Hours between triggers"
|
|
hours_interval_description: "Must be in range 1-23"
|
|
days_interval: "Days between triggers"
|
|
days_interval_description: "Must be in range 1-31"
|
|
weeks_interval: "Weeks between triggers"
|
|
months_interval: "Months between triggers"
|
|
months_interval_description: "Must be in range 1-12"
|
|
trigger_at_day: "Trigger on weekdays"
|
|
trigger_at_day_of_month: "Trigger at day of month"
|
|
trigger_at_day_of_month_description: "If a month doesn't have this day, the node won't trigger"
|
|
trigger_at_hour: "Trigger at hour"
|
|
trigger_at_minute: "Trigger at minute"
|
|
expression: "Cron expression"
|
|
expression_description: "Standard 5-field cron (minute hour day-of-month month day-of-week). Example: 0 9 * * 1-5 for weekdays at 9 AM. <a href='https://crontab.guru/examples.html' target='_blank'>Help on cron</a>."
|
|
cron: "Cron expression"
|
|
cron_invalid: "Must be a valid 5-field cron expression"
|
|
wait:
|
|
resume: "Resume when"
|
|
resume_time_interval: "After time interval"
|
|
resume_webhook: "On webhook call"
|
|
wait_amount: "Wait"
|
|
wait_unit: "Unit"
|
|
wait_unit_seconds: "Seconds"
|
|
wait_unit_minutes: "Minutes"
|
|
wait_unit_hours: "Hours"
|
|
wait_unit_days: "Days"
|
|
webhook_info_description: "The webhook URL will be generated at run time. Reference the base URL in earlier nodes with the <code>$execution.resume_url</code> variable. If this node has a webhook suffix, append it to that URL."
|
|
http_method: "HTTP method"
|
|
response_mode: "Respond"
|
|
response_mode_on_received: "Immediately"
|
|
response_mode_last_node: "When last node finishes"
|
|
response_mode_response_node: "Using Respond to webhook node"
|
|
response_code: "Response code"
|
|
response_data: "Response data"
|
|
response_data_first_entry_json: "First entry JSON"
|
|
response_data_all_entries: "All entries"
|
|
response_data_no_data: "No data"
|
|
response_body: "Response body"
|
|
no_response_body: "No response body"
|
|
response_headers: "Response headers"
|
|
add_response_header: "Add response header"
|
|
ip_allowlist: "IP allowlist"
|
|
ignore_bots: "Ignore bots"
|
|
webhook_suffix: "Webhook suffix"
|
|
limit_wait_time: "Limit wait time"
|
|
timeout_amount: "Timeout after"
|
|
timeout_unit: "Timeout unit"
|
|
loop_over_items:
|
|
batch_size: "Batch size"
|
|
batch_size_description: "Number of items to process per iteration"
|
|
http_request:
|
|
authentication: "Authentication"
|
|
authentication_none: "None"
|
|
authentication_basic_auth: "Basic auth"
|
|
authentication_bearer_token: "Bearer token"
|
|
authentication_header_auth: "Header auth"
|
|
credential: "Credential"
|
|
method: "Method"
|
|
url: "URL"
|
|
headers: "Headers"
|
|
query_params: "Query parameters"
|
|
key_placeholder: "key"
|
|
value_placeholder: "value"
|
|
add_query_param: "Add parameter"
|
|
add_header: "Add header"
|
|
content_type: "Content type"
|
|
content_type_json: "JSON"
|
|
content_type_form_urlencoded: "Form URL-encoded"
|
|
content_type_raw: "Raw"
|
|
body_json: "Request body"
|
|
body_json_placeholder: '{"key": "value"}'
|
|
body_raw: "Request body"
|
|
body_form: "Form data"
|
|
add_body_form: "Add field"
|
|
raw_content_type: "Content type"
|
|
raw_content_type_placeholder: "text/plain"
|
|
never_error: "Never error"
|
|
never_error_description: "Return non-2xx responses instead of raising an error"
|
|
full_response: "Include response headers and status"
|
|
full_response_description: "Return the full response instead of only the body"
|
|
split_out:
|
|
field: "Fields to split out"
|
|
field_description: "Comma-separated field name(s) containing arrays to split. Supports dot notation for nested fields."
|
|
field_placeholder: "items"
|
|
include: "Include"
|
|
no_other_fields: "No other fields"
|
|
all_other_fields: "All other fields"
|
|
selected_other_fields: "Selected other fields"
|
|
fields_to_include: "Fields to include"
|
|
fields_to_include_description: "Comma-separated list of fields to carry over from the input item"
|
|
fields_to_include_placeholder: "company, id"
|
|
destination_field_name: "Destination field name"
|
|
destination_field_name_description: "Rename the split field in output. If splitting multiple fields, provide matching count of names."
|
|
sort:
|
|
type: "Sort type"
|
|
simple: "Simple"
|
|
random: "Random"
|
|
code: "Code"
|
|
sort_fields: "Sort fields"
|
|
field_name: "Field name"
|
|
field_name_placeholder: "name"
|
|
order: "Order"
|
|
ascending: "Ascending"
|
|
descending: "Descending"
|
|
code_field: "JavaScript code"
|
|
code_description: "Write a comparator function body. Variables a and b are item objects. Return -1, 0, or 1."
|
|
merge:
|
|
mode: "Mode"
|
|
mode_append: "Append"
|
|
mode_combine: "Combine"
|
|
include_unpaired: "Include unpaired items"
|
|
include_unpaired_description: "When the two inputs have different numbers of items, keep the leftover items that have no counterpart to pair with instead of dropping them."
|
|
resolve_clash: "When fields clash"
|
|
resolve_clash_add_suffix: "Add a suffix"
|
|
resolve_clash_prefer_first: "Prefer first item"
|
|
resolve_clash_prefer_last: "Prefer last item"
|
|
log:
|
|
mode: "Mode"
|
|
mode_description: "Choose whether entries are logged once per item or once for all items"
|
|
mode_run_once_for_each_item: "Run once for each item"
|
|
mode_run_once_for_all_items: "Run once for all items"
|
|
entries: "Log entries"
|
|
key: "Key"
|
|
value: "Value"
|
|
add_entry: "Add entry"
|
|
markdown_table:
|
|
mapping_mode: "Mapping column mode"
|
|
mapping_mode_manual: "Map each column manually"
|
|
mapping_mode_auto: "Map automatically"
|
|
columns: "Columns"
|
|
header: "Header"
|
|
value: "Value"
|
|
add_column: "Add column"
|
|
template:
|
|
mode: "Mode"
|
|
mode_description: "Choose whether the template renders once per item or once for all items"
|
|
mode_run_once_for_each_item: "Run once for each item"
|
|
mode_run_once_for_all_items: "Run once for all items"
|
|
template: "Template"
|
|
template_description: "In all-items mode, use loop syntax <code>{% for item in items %}...{% endfor %}</code>. Inside the loop, prefix item fields with <code>item.</code>, for example <code>{{ item.topic.title }}</code>. The loop index is available as <code>item.item_index</code>. In each-item mode, use the same <code>item.</code> prefix for the current item. <code>items_count</code>, <code>vars</code>, <code>workflow</code>, <code>execution</code>, and <code>site_settings</code> are also accessible. Workflow expressions are not evaluated inside this field. If you need to modify your items, use the Set fields node before the template node."
|
|
template_placeholder: "Hello item.name"
|
|
form:
|
|
page_type: "Page type"
|
|
page_type_page: "Next form page"
|
|
page_type_completion: "Form ending"
|
|
form_title: "Form title"
|
|
form_title_placeholder: "My form"
|
|
form_description: "Form description"
|
|
form_description_placeholder: "Describe the purpose of this form..."
|
|
form_fields: "Form fields"
|
|
add_form_field: "Add field"
|
|
field_label: "Label"
|
|
field_label_placeholder: "Field label"
|
|
field_type: "Type"
|
|
field_type_text: "Text"
|
|
field_type_textarea: "Textarea"
|
|
field_type_number: "Number"
|
|
field_type_email: "Email"
|
|
field_type_password: "Password"
|
|
field_type_date: "Date"
|
|
field_type_checkbox: "Checkbox"
|
|
field_type_dropdown: "Dropdown"
|
|
field_type_radio: "Radio"
|
|
field_type_hiddenField: "Hidden field"
|
|
field_type_html: "HTML"
|
|
field_name: "Custom field name"
|
|
required: "Required"
|
|
description: "Description"
|
|
placeholder: "Placeholder"
|
|
placeholder_placeholder: "Enter placeholder text..."
|
|
field_value: "Field value"
|
|
html: "HTML"
|
|
default_value: "Default value"
|
|
options: "Field options"
|
|
value: "Option"
|
|
on_submission: "On form submission"
|
|
on_submission_completion_screen: "Show completion screen"
|
|
on_submission_redirect: "Redirect to URL"
|
|
on_submission_show_text: "Show text"
|
|
completion_title: "Title"
|
|
completion_title_placeholder: "Thank you!"
|
|
completion_message: "Message"
|
|
completion_message_placeholder: "Your response has been recorded"
|
|
redirect_url: "URL"
|
|
redirect_url_placeholder: "https://example.com/thanks"
|
|
completion_text: "Text"
|
|
completion_text_placeholder: "Thank you for your submission"
|
|
response_mode: "Respond when"
|
|
response_mode_on_received: "Form is submitted"
|
|
response_mode_workflow_finishes: "Workflow finishes"
|
|
authentication: "Authentication"
|
|
authentication_description: "Who can access and submit this form"
|
|
authentication_none: "Anyone"
|
|
authentication_login_required: "Logged-in users only"
|
|
form_url: "Form URL"
|
|
test_url: "Test"
|
|
production_url: "Production"
|
|
listen_for_test_event: "Listen for test event"
|
|
test_mode_banner: "This is a test version of your form"
|
|
thank_you: "Thank you! Your response has been recorded."
|
|
redirecting: "Redirecting..."
|
|
error_message: "Something went wrong. Please try again."
|
|
errors:
|
|
invalid: "%{field} is invalid"
|
|
missing: "%{field} is required"
|
|
submitting: "Submitting..."
|
|
submit: "Submit"
|
|
save_for_url: "Save the workflow to generate a form URL"
|
|
respond_to_webhook:
|
|
response_type: "Respond with"
|
|
response_type_json: "JSON"
|
|
response_type_redirect: "Redirect"
|
|
response_type_text: "Text"
|
|
response_type_no_data: "No data"
|
|
response_type_first_incoming_item: "First incoming item"
|
|
response_type_all_incoming_items: "All incoming items"
|
|
status_code: "Status code"
|
|
redirect_url: "Redirect URL"
|
|
redirect_url_placeholder: "https://example.com/thanks"
|
|
allowed_redirect_domains: "Allowed redirect domains"
|
|
allowed_redirect_domains_description: "External domains this node may redirect to. Use exact hostnames such as example.com or wildcard subdomains such as *.example.com. Only use wildcards when the redirect URL cannot be influenced by untrusted request data."
|
|
add_allowed_redirect_domain: "Add domain"
|
|
domain: "Domain"
|
|
domain_placeholder: "example.com"
|
|
response_body: "Response body"
|
|
response_body_placeholder: '{"success": true}'
|
|
response_key: "Response key"
|
|
response_headers: "Response headers"
|
|
add_response_header: "Add response header"
|
|
data_table_node:
|
|
resource: "Resource"
|
|
resources:
|
|
row: "Row"
|
|
operation: "Operation"
|
|
operations:
|
|
insert: "Insert"
|
|
get: "Get"
|
|
update: "Update"
|
|
delete: "Delete"
|
|
upsert: "Upsert"
|
|
row_exists: "If row exists"
|
|
row_not_exists: "If row does not exist"
|
|
data_table_id: "Data table"
|
|
data_table_id_placeholder: "Select a data table..."
|
|
mapping_mode: "Mapping column mode"
|
|
mapping_mode_manual: "Map each column manually"
|
|
mapping_mode_auto: "Map automatically"
|
|
columns_case_sensitive_hint_description: "Column mappings must match the data table column names exactly (case sensitive)"
|
|
columns: "Columns"
|
|
filter_combinator: "Match mode"
|
|
filter_combinator_and: "All conditions must match"
|
|
filter_combinator_or: "Any condition can match"
|
|
filter: "Conditions"
|
|
limit: "Limit"
|
|
sort_column: "Sort by"
|
|
sort_column_placeholder: "Select a column..."
|
|
sort_direction: "Sort direction"
|
|
sort_direction_asc: "Ascending"
|
|
sort_direction_desc: "Descending"
|
|
value_placeholder: "Value"
|
|
executions:
|
|
title: "Executions"
|
|
workflow: "Workflow"
|
|
view_executions: "Executions"
|
|
back_to_editor: "Back to editor"
|
|
status: "Status"
|
|
started_at: "Started"
|
|
finished_at: "Finished"
|
|
run_time: "Run time"
|
|
id: "ID"
|
|
expand: "Details"
|
|
collapse: "Hide"
|
|
details: "Details"
|
|
no_executions: "No executions recorded yet"
|
|
empty_title: "Hey %{username}, no runs yet"
|
|
empty_description: "Once your first workflow runs, execution logs will appear here so you can monitor activity and troubleshoot issues"
|
|
delete_selected: "Delete selected"
|
|
select: "Select"
|
|
cancel_select: "Cancel"
|
|
show: "Show"
|
|
delete_confirm:
|
|
one: "Are you sure you want to delete %{count} execution?"
|
|
other: "Are you sure you want to delete %{count} executions?"
|
|
input: "Input"
|
|
output: "Output"
|
|
items: "items"
|
|
logs: "Console"
|
|
total_time: "Total time:"
|
|
export: "Export"
|
|
error: "Error"
|
|
reason: "Reason"
|
|
with_value: "with value"
|
|
truncated:
|
|
input: "Input truncated"
|
|
output: "Output truncated"
|
|
value: "Value truncated"
|
|
original_bytes: "%{count} bytes before truncation"
|
|
original_size: "%{count} items before truncation"
|
|
max_bytes: "%{count} byte limit"
|
|
statuses:
|
|
pending: "Pending"
|
|
running: "Running"
|
|
success: "Completed"
|
|
error: "Error"
|
|
skipped: "Skipped"
|
|
filtered: "Filtered"
|
|
waiting: "Waiting"
|
|
kept: "Kept"
|
|
rejected: "Rejected"
|
|
rate_limited: "Rate limited"
|
|
|
|
kinds:
|
|
trigger: "Trigger"
|
|
condition: "Condition"
|
|
action: "Action"
|
|
flow: "Flow"
|
|
stats:
|
|
executions: "Executions"
|
|
failures: "Failures"
|
|
failure_rate: "Failure rate"
|
|
avg_run_time: "Avg. run time"
|
|
period: "Last 7 days"
|
|
variables:
|
|
title: "Variables"
|
|
description: "Global constants available in all workflows via $vars.KEY"
|
|
add: "Add variable"
|
|
key: "Key"
|
|
key_placeholder: "my_variable"
|
|
key_invalid: "Must start with a letter or underscore and contain only letters, numbers, and underscores"
|
|
value: "Value"
|
|
value_placeholder: "Variable value"
|
|
creator: "Creator"
|
|
no_variables: "No variables defined yet"
|
|
delete_confirm: "Are you sure you want to delete the variable \"%{key}\"?"
|
|
empty_title: "%{username}, let's set up a variable"
|
|
empty_description: "Variables can be used to store data that can be referenced easily across multiple workflows"
|
|
add_first: "Add first variable"
|
|
usage_syntax: "Usage syntax"
|
|
copy_syntax: "Copy to clipboard"
|
|
copied: "Copied to clipboard"
|
|
edit: "Edit variable"
|
|
credentials:
|
|
title: "Credentials"
|
|
description: "Encrypted credentials for authenticating workflow integrations"
|
|
add: "Add credential"
|
|
edit: "Edit credential"
|
|
name: "Name"
|
|
name_placeholder: "My credential"
|
|
type: "Type"
|
|
created: "Created"
|
|
no_credentials: "No credentials defined yet"
|
|
delete_confirm: "Are you sure you want to delete the credential \"%{name}\"?"
|
|
empty_title: "%{username}, let's set up a credential"
|
|
empty_description: "Credentials store encrypted authentication data for use in workflows"
|
|
add_first: "Add first credential"
|
|
set_up_credential: "Set up credential"
|
|
select_type: "Select type"
|
|
referenced_by_workflows: "This credential is used by workflows and cannot be deleted. Remove references first."
|
|
in_use_title: "Credential in use"
|
|
in_use_description: "This credential cannot be deleted because it is used by the following workflows:"
|
|
data_tables:
|
|
title: "Data tables"
|
|
add: "Add data table"
|
|
edit: "Edit data table"
|
|
name: "Name"
|
|
name_placeholder: "my_table"
|
|
name_invalid: "Must start with a letter or underscore and contain only letters, numbers, underscores, and spaces"
|
|
no_data_tables: "No data tables yet"
|
|
empty_title: "%{username}, let's set up a data table"
|
|
empty_description: "Data tables can be used to store structured data that your workflows can read and write"
|
|
add_first: "Add first data table"
|
|
manage_data_tables: "Manage data tables"
|
|
columns: "Columns"
|
|
size: "Size"
|
|
rows: "Rows"
|
|
column_name: "Column name"
|
|
column_name_invalid: "Must start with a letter or underscore and contain only letters, numbers, and underscores"
|
|
column_type: "Column type"
|
|
column_types:
|
|
string: "String"
|
|
number: "Number"
|
|
boolean: "Boolean"
|
|
date: "Date"
|
|
add_column: "Add column"
|
|
add_row: "Add row"
|
|
edit_row: "Edit row"
|
|
no_rows: "No rows yet"
|
|
back: "Back"
|
|
delete_confirm: "Are you sure you want to delete this data table and all its rows?"
|
|
in_use_title: "Data table in use"
|
|
in_use_description: "This data table cannot be deleted because it is used by the following workflows:"
|
|
delete_selected: "Delete selected"
|
|
clear_selection: "Clear selection"
|
|
delete_rows_confirm:
|
|
one: "Are you sure you want to delete %{count} row?"
|
|
other: "Are you sure you want to delete %{count} rows?"
|
|
canvas:
|
|
fit_to_view: "Fit"
|
|
zoom_to_fit: "Zoom to fit [1]"
|
|
zoom_in: "Zoom in [+]"
|
|
zoom_out: "Zoom out [-]"
|
|
undo: "Undo"
|
|
redo: "Redo"
|
|
auto_layout: "Auto layout [2]"
|
|
add_step: "Add step"
|
|
remove_connection: "Remove connection"
|
|
export_nodes: "Export"
|
|
import_nodes: "Import"
|
|
import_error: "Failed to import: invalid file format"
|
|
import_version_error: "Failed to import: unsupported format version"
|
|
max_nodes_reached: "Workflows are limited to %{max} nodes"
|
|
sync_error: "Failed to sync canvas changes. Please reload the page."
|
|
sticky_note:
|
|
add: "Add sticky note"
|
|
delete: "Delete"
|
|
change_color: "Change color"
|
|
placeholder: "Double-click to edit..."
|
|
manual_trigger:
|
|
run: "Run manually with the sample pinned data"
|
|
triggered: "Triggered"
|
|
failed: "Execution failed"
|
|
view_execution: "View execution"
|
|
listening: "Listening for test webhook event"
|
|
needs_pin_data: "Pin sample data on this trigger before running it manually."
|
|
pin_data:
|
|
pin: "Pin data"
|
|
unpin: "Unpin"
|
|
is_pinned: "This data is pinned for test executions."
|
|
output_available_tip: "Now that you have output data for this node, you can pin it and use it when executing this trigger manually with the green play button."
|
|
save: "Save"
|
|
cancel: "Cancel"
|
|
schema_view: "Schema"
|
|
json_view: "JSON"
|
|
add_sample_data: "Add sample data"
|
|
empty_title: "No output yet"
|
|
no_data_yet: "No output yet. Add sample data to test this node manually."
|
|
no_data_no_edit: "No output data."
|
|
loading_editor: "Loading editor…"
|
|
invalid_json: "Invalid JSON"
|
|
invalid_json_empty: "JSON cannot be empty."
|
|
invalid_shape_not_array: "Pinned data must be an array of items."
|
|
invalid_shape_empty: "Pinned data must contain at least one item."
|
|
invalid_shape_item_not_object: "Each item must be a JSON object."
|
|
size_hint: "%{bytes} / %{max} bytes"
|
|
size_exceeded: "Pinned data exceeds the maximum size."
|
|
confirm_discard: "Discard your unsaved changes to the pinned data?"
|
|
branch:
|
|
"true": "Yes"
|
|
"false": "No"
|
|
done: "Done"
|
|
loop: "Loop"
|