Files
dify/web/i18n/resources.generated.d.ts

7199 lines
473 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Generated from i18n/locales/en-US/*.json by pnpm i18n:generate-types. Do not edit.
export default interface Resources {
accountSettings: {
'account.account': 'Account'
'account.changeEmail.authTip': 'Once your email is changed, Google or GitHub accounts linked to your old email will no longer be able to log in to this account.'
'account.changeEmail.changeTo': 'Change to {{email}}'
'account.changeEmail.codeLabel': 'Verification code'
'account.changeEmail.codePlaceholder': 'Paste the 6-digit code'
'account.changeEmail.content1': "If you continue, we'll send a verification code to <email>{{email}}</email> for re-authentication."
'account.changeEmail.content2': 'Your current email is <email>{{email}}</email>. Verification code has been sent to this email address.'
'account.changeEmail.content3': 'Enter a new email and we will send you a verification code.'
'account.changeEmail.content4': 'We just sent you a temporary verification code to <email>{{email}}</email>.'
'account.changeEmail.continue': 'Continue'
'account.changeEmail.emailLabel': 'New email'
'account.changeEmail.emailPlaceholder': 'Enter a new email'
'account.changeEmail.existingEmail': 'A user with this email already exists.'
'account.changeEmail.newEmail': 'Set up a new email address'
'account.changeEmail.resend': 'Resend'
'account.changeEmail.resendCount': 'Resend in {{count}}s'
'account.changeEmail.resendTip': "Didn't receive a code?"
'account.changeEmail.sendVerifyCode': 'Send verification code'
'account.changeEmail.title': 'Change Email'
'account.changeEmail.unAvailableEmail': 'This email is temporarily unavailable.'
'account.changeEmail.verifyEmail': 'Verify your current email'
'account.changeEmail.verifyNew': 'Verify your new email'
'account.confirmPassword': 'Confirm password'
'account.currentPassword': 'Current password'
'account.delete': 'Delete Account'
'account.deleteLabel': 'To confirm, please type in your email below'
'account.deletePlaceholder': 'Please enter your email'
'account.deletePrivacyLink': 'Privacy Policy.'
'account.deletePrivacyLinkTip': 'For more information about how we handle your data, please see our '
'account.deleteSuccessTip': "Your account needs time to finish deleting. We'll email you when it's all done."
'account.deleteTip': 'Please note, once confirmed, as the Owner of any Workspaces, your workspaces will be scheduled in a queue for permanent deletion, and all your user data will be queued for permanent deletion.'
'account.editName': 'Edit Name'
'account.editWorkspaceInfo': 'Edit Workspace Info'
'account.email': 'Email'
'account.feedbackLabel': 'Tell us why you deleted your account?'
'account.feedbackPlaceholder': 'Optional'
'account.feedbackTitle': 'Feedback'
'account.general': 'General'
'account.langGeniusAccount': "Account's data"
'account.langGeniusAccountTip': 'The user data of your account.'
'account.myAccount': 'My Account'
'account.name': 'Name'
'account.newPassword': 'New password'
'account.notEqual': 'Two passwords are different.'
'account.password': 'Password'
'account.passwordTip': 'You can set a permanent password if you don’t want to use temporary login codes'
'account.permanentlyDeleteButton': 'Permanently Delete Account'
'account.resetPassword': 'Reset password'
'account.sendVerificationButton': 'Send Verification Code'
'account.setPassword': 'Set a password'
'account.showAppLength': 'Show {{length}} apps'
'account.timezoneNoResults': 'No matching time zones found'
'account.timezoneSearchPlaceholder': 'Search cities or time zones...'
'account.verificationLabel': 'Verification Code'
'account.verificationPlaceholder': 'Paste the 6-digit code'
'account.workspaceName': 'Workspace Name'
'account.workspaceNamePlaceholder': 'Enter workspace name'
'personalAccessToken.access': 'Access'
'personalAccessToken.active': 'Active'
'personalAccessToken.all': 'All'
'personalAccessToken.allIncludingFuture': 'All, including future'
'personalAccessToken.allResources': 'All resources'
'personalAccessToken.allResultsShown': 'All results shown'
'personalAccessToken.allWorkspaces': 'All workspaces'
'personalAccessToken.allowed': 'Allowed'
'personalAccessToken.appDeployment': 'App deployment'
'personalAccessToken.conflict': 'This token changed elsewhere. Reload the latest version before saving.'
'personalAccessToken.copyFailed': 'Copy failed. Please try again.'
'personalAccessToken.copyNow': "Copy it now. You won't see it again."
'personalAccessToken.createButton': 'Create token'
'personalAccessToken.createTitle': 'Create personal access token'
'personalAccessToken.createdTitle': 'Token created'
'personalAccessToken.days': '{{count}} days'
'personalAccessToken.deleteDescription': "Scripts and tools using it will stop working right away. This can't be undone."
'personalAccessToken.deleteTitle': 'Delete {{name}} (••••{{suffix}})?'
'personalAccessToken.deleted': 'Deleted'
'personalAccessToken.description': 'Connect tools and automation with your personal permissions.'
'personalAccessToken.duplicateDescription': 'Creates a new token. The original token will stay unchanged.'
'personalAccessToken.duplicateTitle': 'Duplicate personal access token'
'personalAccessToken.editTitle': 'Edit personal access token'
'personalAccessToken.effectiveAccess': 'Effective access follows your account permissions.'
'personalAccessToken.excludedAccess': '{{items}} excluded because access is no longer available.'
'personalAccessToken.expiration': 'Expiration'
'personalAccessToken.expired': 'Expired'
'personalAccessToken.expiredDate': 'Expired on {{date}}'
'personalAccessToken.expires': 'Expires'
'personalAccessToken.howToUseIt': 'How to use it'
'personalAccessToken.lastUsed': 'Last used'
'personalAccessToken.loadMoreResources': 'Load more resources'
'personalAccessToken.loadMoreRetry': "Couldn't load more. Retry"
'personalAccessToken.loadMoreWorkspaces': 'Load more workspaces'
'personalAccessToken.manageWorkspaces': 'Manage workspaces'
'personalAccessToken.never': 'Never'
'personalAccessToken.noResourceCalls': 'This token cannot call apps.'
'personalAccessToken.noTokens': 'No personal access tokens'
'personalAccessToken.noWorkspaceOperations': 'This token cannot manage workspaces.'
'personalAccessToken.none': 'None'
'personalAccessToken.notMember': 'Not a member'
'personalAccessToken.reload': 'Reload latest version'
'personalAccessToken.resourcesCount':
| '{{count}} resources'
| '{{count}} resource'
| '{{count}} resources'
'personalAccessToken.roleAdmin': 'Administrator'
'personalAccessToken.roleDatasetOperator': 'Knowledge operator'
'personalAccessToken.roleEditor': 'Editor'
'personalAccessToken.roleMember': 'Member'
'personalAccessToken.roleOwner': 'Owner'
'personalAccessToken.scopeRequired': 'Enable at least one scope and select at least one item for each Selected scope.'
'personalAccessToken.scopeTitle': 'Access scope'
'personalAccessToken.searchResources': 'Search name, workspace or ID'
'personalAccessToken.searchWorkspaces': 'Search workspace name or ID'
'personalAccessToken.secretUnavailable': "The secret is shown only once. If you didn't save it, revoke this token and create a new one."
'personalAccessToken.selected': 'Selected'
'personalAccessToken.status': 'Status'
'personalAccessToken.title': 'Personal access tokens'
'personalAccessToken.unavailableCount': '{{count}} unavailable'
'personalAccessToken.unavailableResources': '{{count}} unavailable items across resources'
'personalAccessToken.unavailableResourcesAndWorkspaces': '{{count}} unavailable items across resources and workspaces'
'personalAccessToken.unavailableWorkspaces': '{{count}} unavailable items across workspaces'
'personalAccessToken.workspace': 'Workspace'
'personalAccessToken.workspaceNotCurrent': 'Switch to this workspace to check access'
'personalAccessToken.workspacesCount':
| '{{count}} workspaces'
| '{{count}} workspace'
| '{{count}} workspaces'
'personalAccessToken.yourRole': 'Your role'
'resourceAccessToken.accessibleResources': 'Accessible Resources'
'resourceAccessToken.actions': 'Actions'
'resourceAccessToken.appCount': '{{count}} App'
'resourceAccessToken.appsCount': '{{count}} Apps'
'resourceAccessToken.appsSection': 'Apps'
'resourceAccessToken.copied': 'Access token copied'
'resourceAccessToken.couldNotLoadResources': "Couldn't load resources"
'resourceAccessToken.createButton': 'Create new token'
'resourceAccessToken.createTitle': 'Create access token'
'resourceAccessToken.created': 'Access token created'
'resourceAccessToken.createdColumn': 'Created'
'resourceAccessToken.createdToken': 'Save your token'
'resourceAccessToken.createdTokenDescription': 'Save this access token in a secure place—you won’t be able to view it again. Anyone who has it can use Difyctl to discover and access the resource authorized by this token. If you lose it, create a new token and revoke the old one.'
'resourceAccessToken.deleteDescription': 'The Access token will be disabled immediately. Calls using this token will be rejected, which may cause the task that is using the access token to interrupt or fail. Once deleted, you will no longer be able to view or modify this Access token.'
'resourceAccessToken.deleteTitle': 'Delete access token ?'
'resourceAccessToken.done': 'Done'
'resourceAccessToken.editTitle': 'Edit access token'
'resourceAccessToken.empty': 'No access tokens yet'
'resourceAccessToken.emptyDescription': 'Create an access token for automated tasks and external systems to discover and access selected resource through Difyctl.'
'resourceAccessToken.knowledgeBasesSection': 'Knowledge bases'
'resourceAccessToken.knowledgeCount': '{{count}} Knowledge'
'resourceAccessToken.knowledgesCount': '{{count}} Knowledges'
'resourceAccessToken.loadError': 'Could not load access tokens'
'resourceAccessToken.loadMore': 'Load more'
'resourceAccessToken.loadingResources': 'Loading resources...'
'resourceAccessToken.name': 'Name'
'resourceAccessToken.namePlaceholder': 'Enter a name'
'resourceAccessToken.next': 'Next'
'resourceAccessToken.noAccessibleResources': 'No accessible resources'
'resourceAccessToken.noResourceSearchResults': 'No matching resources'
'resourceAccessToken.noResources': 'No API-enabled resources available'
'resourceAccessToken.noResourcesAvailable': 'No resources available'
'resourceAccessToken.previous': 'Previous'
'resourceAccessToken.resources': 'Resources'
'resourceAccessToken.resourcesWillAppearHere': 'Resources you can access will appear here.'
'resourceAccessToken.searchPlaceholder': 'Search tokens...'
'resourceAccessToken.searchResourcesPlaceholder': 'Search apps or knowledge bases...'
'resourceAccessToken.selectionPreservedError': 'Try again. Your selection has not changed.'
'resourceAccessToken.selectionPreservedLoading': 'Your existing selection is preserved.'
'resourceAccessToken.tabAllTypes': 'All types'
'resourceAccessToken.tabApps': 'Apps'
'resourceAccessToken.tabKnowledgeBases': 'Knowledge bases'
'resourceAccessToken.token': 'Token'
'resourceAccessToken.total': '{{total}} total'
}
agentRoster: {
'roster.createAgent': 'Create agent'
'roster.createDialog.description': 'Create a reusable Agent in this workspace.'
'roster.createDialog.title': 'Create agent'
'roster.createForm.changeIcon': 'Change agent icon'
'roster.createForm.descriptionLabel': 'Description'
'roster.createForm.descriptionPlaceholder': 'e.g. Gathers sources on a topic and summarizes the key findings'
'roster.createForm.nameLabel': 'Name'
'roster.createForm.namePlaceholder': 'e.g. Max'
'roster.createForm.nameRequired': 'Name is required.'
'roster.createForm.roleLabel': 'Role'
'roster.createForm.rolePlaceholder': 'e.g. Research Assistant'
'roster.dateTimeFormat': 'MM/DD/YYYY hh:mm:ss A'
'roster.deleteDialog.description': 'This permanently deletes {{name}}. Its web app, API access, and workflows that use it stop working immediately.'
'roster.deleteDialog.inputLabel': 'Type <name>{{name}}</name> to confirm'
'roster.deleteDialog.inputPlaceholder': 'Enter agent name'
'roster.deleteDialog.title': 'Delete {{name}}?'
'roster.deleteFailed': 'Failed to delete agent.'
'roster.duplicateDialog.description': 'Create a copy of {{name}} and customize its Agent identity.'
'roster.duplicateDialog.title': 'Duplicate agent'
'roster.duplicateForm.changeIcon': 'Change duplicate icon for {{name}}'
'roster.editDialog.description': "Update this Agent's name, description, and role."
'roster.editDialog.title': 'Edit agent'
'roster.editInfo': 'Edit Info'
'roster.empty': 'No agent yet'
'roster.emptySearch': 'No matching agents'
'roster.filters.all': 'All'
'roster.filters.createdByMe': 'Created by me'
'roster.filters.drafts': 'Drafts'
'roster.filters.label': 'Agent filters'
'roster.filters.published': 'Published'
'roster.learnMore': 'Learn more about Agent'
'roster.listLabel': 'Agent list'
'roster.loadMore': 'Load more'
'roster.loadingError': 'Failed to load agents. Refresh and try again.'
'roster.moreActions': 'More actions for {{name}}'
'roster.nodeSelector.createInlineFailed': 'Failed to create inline agent. Refresh and try again.'
'roster.nodeSelector.dialogLabel': 'Select an agent'
'roster.nodeSelector.manageInAgentConsole': 'Manage in Agents'
'roster.nodeSelector.searchPlaceholder': 'Search…'
'roster.nodeSelector.startFromScratch': 'Start from Scratch'
'roster.references.label': 'Workflows using {{name}}'
'roster.references.trigger': 'Workflows using {{name}}'
'roster.saveToRoster': 'Save to Agents'
'roster.saveToRosterDialog.description': 'Save this inline setup as a reusable Agent.'
'roster.saveToRosterDialog.title': 'Save to Agents'
'roster.saveToRosterForm.changeIcon': 'Change Agent icon'
'roster.searchLabel': 'Search agents'
'roster.searchPlaceholder': 'Search agents by name…'
'roster.sort.earliestCreated': 'Earliest created'
'roster.sort.label': 'Sort by'
'roster.sort.lastModified': 'Last modified'
'roster.sort.recentlyCreated': 'Recently created'
'roster.title': 'Agents'
'roster.usageStatus.draft': 'Draft'
}
agentV2: {
'agentDetail.access.copyAccessUrl': 'Copy access URL'
'agentDetail.access.copyFailed': 'Failed to copy reference.'
'agentDetail.access.copyServiceEndpoint': 'Copy service API endpoint'
'agentDetail.access.description': 'All the ways this agent can be reached.'
'agentDetail.access.learnMore': 'Learn more'
'agentDetail.access.publishRequired': 'Publish the agent to turn this on.'
'agentDetail.access.serviceApi.actions.apiKey': 'API Key'
'agentDetail.access.serviceApi.actions.apiReference': 'API Reference'
'agentDetail.access.serviceApi.description': 'Integrate the app into your services over HTTP'
'agentDetail.access.serviceApi.endpoint': 'API Endpoint'
'agentDetail.access.serviceApi.title': 'Backend Service API'
'agentDetail.access.status.inService': 'In service'
'agentDetail.access.status.outOfService': 'Out of service'
'agentDetail.access.status.unavailable': 'Unavailable'
'agentDetail.access.title': 'Access Point'
'agentDetail.access.toggleSurface': 'Toggle {{name}} access'
'agentDetail.access.webApp.accessUrl': 'Access URL'
'agentDetail.access.webApp.actions.customFrontend': 'Custom Frontend'
'agentDetail.access.webApp.actions.embedIntoSite': 'Embed Into Site'
'agentDetail.access.webApp.actions.open': 'Open'
'agentDetail.access.webApp.actions.settings': 'Settings'
'agentDetail.access.webApp.description': 'Use the app through a hosted web page'
'agentDetail.access.webApp.qrCode.download': 'Download QR Code'
'agentDetail.access.webApp.qrCode.scanToShare': 'Scan to share'
'agentDetail.access.webApp.refreshUrl': 'Refresh access URL'
'agentDetail.access.webApp.showQrCode': 'Show QR code'
'agentDetail.access.webApp.title': 'Web App'
'agentDetail.access.workflow.description': 'Used as a node inside the workflow'
'agentDetail.access.workflow.empty': 'No workflow references yet.'
'agentDetail.access.workflow.loadFailed': 'Failed to load workflow references.'
'agentDetail.access.workflow.loading': 'Loading workflow references…'
'agentDetail.access.workflow.nodeCount': '{{count}} node' | '{{count}} nodes'
'agentDetail.access.workflow.notAvailable': 'N/A'
'agentDetail.access.workflow.openInStudio': 'Open in Studio'
'agentDetail.access.workflow.table.actions': 'Actions'
'agentDetail.access.workflow.table.lastUpdated': 'Last updated'
'agentDetail.access.workflow.table.name': 'Name'
'agentDetail.access.workflow.table.nodes': 'Nodes'
'agentDetail.access.workflow.table.version': 'Version'
'agentDetail.access.workflow.title': 'Workflow access'
'agentDetail.configure.advancedSettings.description': 'For power users, such as environment variables.'
'agentDetail.configure.advancedSettings.envEditor.add': 'Add environment variable'
'agentDetail.configure.advancedSettings.envEditor.deleteVariable': 'Delete {{key}}'
'agentDetail.configure.advancedSettings.envEditor.hideValue': 'Hide {{key}} value'
'agentDetail.configure.advancedSettings.envEditor.importEnv': 'Import .env'
'agentDetail.configure.advancedSettings.envEditor.importEnvTip.mac': 'To show hidden .env files, press Command + Shift + . in the file picker.'
'agentDetail.configure.advancedSettings.envEditor.importEnvTip.other': 'If your .env file is hidden, enable hidden files in your system file picker.'
'agentDetail.configure.advancedSettings.envEditor.importEnvTip.windows': 'To show hidden .env files, enable Hidden items in File Explorer.'
'agentDetail.configure.advancedSettings.envEditor.importSkippedInvalidLines':
| '{{count}} invalid .env line was skipped.'
| '{{count}} invalid .env lines were skipped.'
'agentDetail.configure.advancedSettings.envEditor.keyColumn': 'Key'
'agentDetail.configure.advancedSettings.envEditor.keyPlaceholder': 'Key'
'agentDetail.configure.advancedSettings.envEditor.label': 'Env Editor'
'agentDetail.configure.advancedSettings.envEditor.revealValue': 'Reveal {{key}} value'
'agentDetail.configure.advancedSettings.envEditor.richTip': 'Set values the agent reads at runtime, like an API key a tool needs, without putting them in the Prompt.\n\nIn Build mode, the agent can set these up for you.'
'agentDetail.configure.advancedSettings.envEditor.scopeColumn': 'Scope'
'agentDetail.configure.advancedSettings.envEditor.scopePlain': 'Plain'
'agentDetail.configure.advancedSettings.envEditor.scopeSecret': 'Secret'
'agentDetail.configure.advancedSettings.envEditor.scopeSelector': 'Select environment variable scope'
'agentDetail.configure.advancedSettings.envEditor.shortLabel': 'Env'
'agentDetail.configure.advancedSettings.envEditor.tip': 'Set values the agent reads at runtime, like an API key a tool needs, without putting them in the Prompt.\n\nIn Build mode, the agent can set these up for you.'
'agentDetail.configure.advancedSettings.envEditor.valueColumn': 'Value'
'agentDetail.configure.advancedSettings.envEditor.valuePlaceholder': 'Value'
'agentDetail.configure.advancedSettings.label': 'Advanced Settings'
'agentDetail.configure.answer.activity.ranCommands': 'Ran commands'
'agentDetail.configure.answer.activity.runningCommands': 'Running commands'
'agentDetail.configure.answer.duration.minute': '{{count}}m'
'agentDetail.configure.answer.duration.second': '{{count}}s'
'agentDetail.configure.answer.responseEnded': 'Response ended'
'agentDetail.configure.answer.thinking': 'Thinking'
'agentDetail.configure.build.empty.communityEditionTip': 'Community Edition, while offering versioning to the extracted configs, does not support versioning on the file system itself. Be careful with your actions in Build mode, as changes made to the file system happen in real time and cannot always be neatly reverted. Community Edition is not your ideal choice for serving mass external audiences.'
'agentDetail.configure.build.empty.description': 'Describe what you want and it fills in the form on the left as you go.'
'agentDetail.configure.build.empty.title': 'Build your agent by chatting'
'agentDetail.configure.build.inputPlaceholder': 'Describe what your agent should do'
'agentDetail.configure.build.startBuild': 'Start build'
'agentDetail.configure.buildDraft.buildNoteDescription': "A running note of this build the agent uses to keep context across sessions. It's added to your files when you Apply."
'agentDetail.configure.buildDraft.changesToApply':
| '{{count}} change to apply'
| '{{count}} changes to apply'
'agentDetail.configure.buildDraft.discard': 'Discard'
'agentDetail.configure.buildDraft.modeBadge': 'Build mode'
'agentDetail.configure.buildDraft.modeDescription': "You're in Build mode. Shape this setup by chatting with the agent, then Apply."
'agentDetail.configure.buildDraft.rewritten': 'Rewritten'
'agentDetail.configure.buildDraft.title': 'Build draft'
'agentDetail.configure.buildDraft.updated': 'Updated'
'agentDetail.configure.chatFeatures.description': 'Shape the end-user chat experience on your web app and chat surfaces.'
'agentDetail.configure.chatFeatures.title': 'Chat Features'
'agentDetail.configure.clearSessionConfirm.description': 'This will clear the current session and discard unapplied Agent configuration changes.'
'agentDetail.configure.clearSessionConfirm.title': 'Clear session and discard changes?'
'agentDetail.configure.communityEditionIsolationTip': 'Disclaimer: In Community Edition, sandbox runs as a non-root user under Docker’s default capability configuration and only provides limited Landlock-based protection for the agent’s own files and session files. The server and all shell subprocesses share the same PID namespace and container-level capability boundary, so it should not be considered a strongly isolated multi-layer security sandbox.'
'agentDetail.configure.files.add': 'Add file'
'agentDetail.configure.files.buildNote.generated': 'Generated'
'agentDetail.configure.files.buildNote.richTooltip': "The agent's record of what it set up in Build mode. It reads this at the start of every conversation, alongside your Prompt. <docLink>Learn more</docLink>"
'agentDetail.configure.files.download': 'Download {{name}}'
'agentDetail.configure.files.empty.description': 'Upload docs the agent can read, like specs, templates, or guidelines'
'agentDetail.configure.files.empty.title': 'No files yet'
'agentDetail.configure.files.label': 'Files'
'agentDetail.configure.files.missing': 'File not found'
'agentDetail.configure.files.preview.empty': 'No preview content.'
'agentDetail.configure.files.preview.failed': 'Failed to load preview.'
'agentDetail.configure.files.preview.truncated': 'Only the beginning of this file is shown.'
'agentDetail.configure.files.preview.unsupported': 'Preview is not supported for this file.'
'agentDetail.configure.files.remove': 'Remove {{name}}'
'agentDetail.configure.files.richTip': 'For reference material too long to paste into the Prompt: specs, templates, guidelines. <docLink>Learn more</docLink>\n\nIn Build mode, the agent can set these up for you.'
'agentDetail.configure.files.tip': 'For reference material too long to paste into the Prompt: specs, templates, guidelines. Learn more\n\nIn Build mode, the agent can set these up for you.'
'agentDetail.configure.files.treeLabel': 'Agent files'
'agentDetail.configure.files.upload.action': 'Upload'
'agentDetail.configure.files.upload.browse': 'browse'
'agentDetail.configure.files.upload.description': 'Upload files for this agent.'
'agentDetail.configure.files.upload.dropzone': 'Drop files here, or'
'agentDetail.configure.files.upload.failed': 'Failed to upload file.'
'agentDetail.configure.files.upload.fileType': 'FILE'
'agentDetail.configure.files.upload.title': 'Upload files'
'agentDetail.configure.knowledgeFs.alias': 'Agent-facing name'
'agentDetail.configure.knowledgeFs.bindingDescription': 'When should the Agent use this Agent Knowledge Base?'
'agentDetail.configure.knowledgeFs.empty': 'No matching Agent Knowledge Bases. Load more to search additional Agent Knowledge Bases.'
'agentDetail.configure.knowledgeFs.invalid': 'Use unique names (up to 120 characters), valid Agent Knowledge Base IDs, and no more than 10 Agent Knowledge Bases.'
'agentDetail.configure.knowledgeFs.loadError': 'Agent Knowledge Bases could not be loaded. Check service availability and your permissions.'
'agentDetail.configure.knowledgeFs.loadMore': 'Load more'
'agentDetail.configure.knowledgeFs.loading': 'Loading Agent Knowledge Bases…'
'agentDetail.configure.knowledgeFs.rebind': 'Imported binding: explicitly select this Agent Knowledge Base again or replace it with an available Agent Knowledge Base.'
'agentDetail.configure.knowledgeFs.retry': 'Retry'
'agentDetail.configure.knowledgeFs.select': 'Select up to 10 Agent Knowledge Bases'
'agentDetail.configure.knowledgeFs.title': 'Agent Knowledge Base'
'agentDetail.configure.knowledgeFs.unavailable': 'This Agent Knowledge Base is unavailable or you do not have permission to use it in this Agent.'
'agentDetail.configure.knowledgeRetrieval.add': 'Add knowledge retrieval'
'agentDetail.configure.knowledgeRetrieval.defaultName': 'Retrieval {{index}}'
'agentDetail.configure.knowledgeRetrieval.dialog.knowledge.add': 'Add knowledge'
'agentDetail.configure.knowledgeRetrieval.dialog.knowledge.empty': 'Click the “+” button to add knowledge'
'agentDetail.configure.knowledgeRetrieval.dialog.knowledge.label': 'Knowledge'
'agentDetail.configure.knowledgeRetrieval.dialog.knowledge.retrievalSetting': 'Retrieval Setting'
'agentDetail.configure.knowledgeRetrieval.dialog.learnMore': 'Learn more about Knowledge retrieval'
'agentDetail.configure.knowledgeRetrieval.dialog.metadata.automatic': 'Automatic'
'agentDetail.configure.knowledgeRetrieval.dialog.metadata.conditions': 'Conditions'
'agentDetail.configure.knowledgeRetrieval.dialog.metadata.disabled': 'Disabled'
'agentDetail.configure.knowledgeRetrieval.dialog.metadata.label': 'Metadata Filtering'
'agentDetail.configure.knowledgeRetrieval.dialog.metadata.manual': 'Manual'
'agentDetail.configure.knowledgeRetrieval.dialog.metadata.modeLabel': 'Select metadata filtering mode'
'agentDetail.configure.knowledgeRetrieval.dialog.nameLabel': 'Knowledge retrieval name'
'agentDetail.configure.knowledgeRetrieval.dialog.query.agent': 'Agent decide'
'agentDetail.configure.knowledgeRetrieval.dialog.query.agentDescription': 'The agent writes its own query from the prompt and available context. Nothing to set up here.'
'agentDetail.configure.knowledgeRetrieval.dialog.query.custom': 'Custom query'
'agentDetail.configure.knowledgeRetrieval.dialog.query.customDescription': 'Write a fixed query for this retrieval source.'
'agentDetail.configure.knowledgeRetrieval.dialog.query.customInputLabel': 'Custom query text'
'agentDetail.configure.knowledgeRetrieval.dialog.query.customPlaceholder': 'Type a search query'
'agentDetail.configure.knowledgeRetrieval.dialog.query.label': 'Query'
'agentDetail.configure.knowledgeRetrieval.dialog.title': 'Knowledge Retrieval · Agent decide'
'agentDetail.configure.knowledgeRetrieval.edit': 'Edit {{name}}'
'agentDetail.configure.knowledgeRetrieval.empty.description': 'Connect a knowledge base the agent can search while answering'
'agentDetail.configure.knowledgeRetrieval.empty.title': 'No knowledge yet'
'agentDetail.configure.knowledgeRetrieval.label': 'Knowledge Retrieval'
'agentDetail.configure.knowledgeRetrieval.remove': 'Remove {{name}}'
'agentDetail.configure.knowledgeRetrieval.retrievalOne': 'Retrieval 1'
'agentDetail.configure.knowledgeRetrieval.retrievalTwo': 'Retrieval 2'
'agentDetail.configure.knowledgeRetrieval.richTip': 'Connect knowledge bases the agent searches while it works, so its answers draw on your content. <docLink>Learn more</docLink>'
'agentDetail.configure.knowledgeRetrieval.tip': 'Connect knowledge bases the agent searches while it works, so its answers draw on your content. Learn more'
'agentDetail.configure.knowledgeRetrieval.toggle': 'Toggle knowledge retrieval'
'agentDetail.configure.knowledgeRetrieval.validation.metadataModelRequired': 'Please config a model in metadata filtering'
'agentDetail.configure.model.label': 'Model'
'agentDetail.configure.preview.chatFeatures': 'Chat Features'
'agentDetail.configure.preview.empty.defaultAgentName': 'Agent'
'agentDetail.configure.preview.empty.description': 'Run the agent as a finished chat, exactly how people will experience it once published.'
'agentDetail.configure.preview.errors.agentModelRequestLimitExceeded': 'This agent run was stopped at the model request limit. Try again, or break the task into smaller steps.'
'agentDetail.configure.preview.errors.agentRunLimitExceeded': 'This agent run was stopped at the time limit. Try again, or break the task into smaller steps.'
'agentDetail.configure.preview.inputPlaceholder': 'Message {{name}}'
'agentDetail.configure.preview.restart': 'Start fresh'
'agentDetail.configure.preview.sandboxNotice': 'Agent runs in a Linux sandbox.'
'agentDetail.configure.preview.sandboxNoticeTooltip': 'For Dify Community Edition, each of your agents runs in a Linux 7.0.0-10060-aws sandbox environment within your docker. Your edits to the environment via Build Chats are persistent.'
'agentDetail.configure.preview.unconfiguredNotice': "This agent isn't set up yet, so replies come straight from the model."
'agentDetail.configure.prompt.copied': 'Prompt copied'
'agentDetail.configure.prompt.copy': 'Copy prompt'
'agentDetail.configure.prompt.copyFailed': 'Failed to copy prompt.'
'agentDetail.configure.prompt.insert.label': 'Insert'
'agentDetail.configure.prompt.label': 'Prompt'
'agentDetail.configure.prompt.placeholder': 'Write instructions here,'
'agentDetail.configure.prompt.referenceMissing': '{{name}} does not exist'
'agentDetail.configure.prompt.richTip': "Define the agent's role and how it should work. <docLink>Learn more</docLink>"
'agentDetail.configure.publishBar.draft': 'Draft'
'agentDetail.configure.publishBar.publishUpdate': 'Publish update'
'agentDetail.configure.publishBar.published': 'Published'
'agentDetail.configure.publishBar.publishedAt': 'Published {{time}}'
'agentDetail.configure.publishBar.publishing': 'Publishing…'
'agentDetail.configure.publishBar.saved': 'Saved 5 min ago'
'agentDetail.configure.publishBar.savedAt': 'Saved {{time}}'
'agentDetail.configure.publishBar.unpublishedChanges': 'Unpublished changes'
'agentDetail.configure.publishBar.upToDate': 'Up to date'
'agentDetail.configure.publishBar.versionHistory': 'Open version history'
'agentDetail.configure.publishImpact.affectedWorkflows': 'Affected Workflows'
'agentDetail.configure.publishImpact.cancel': 'Cancel'
'agentDetail.configure.publishImpact.descriptionPrefix': 'This agent is used in'
'agentDetail.configure.publishImpact.descriptionSuffix': '. Publishing updates it in all of them.'
'agentDetail.configure.publishImpact.fallbackAgentName': 'this agent'
'agentDetail.configure.publishImpact.title': '{{action}} to {{name}}'
'agentDetail.configure.publishImpact.workflowCount':
| '{{count}} workflow'
| '{{count}} workflows'
'agentDetail.configure.publishSuccess.accessDescription': 'View all access methods to configure how to use your published agent.'
'agentDetail.configure.publishSuccess.accessMethods': 'View all access methods'
'agentDetail.configure.publishSuccess.dismiss': 'Dismiss publish guidance'
'agentDetail.configure.publishSuccess.firstDescription': 'Your agent is live. Open the Web App to try the version your users will see.'
'agentDetail.configure.publishSuccess.firstTitle': 'Published successfully'
'agentDetail.configure.publishSuccess.openWebApp': 'Open Web App'
'agentDetail.configure.publishSuccess.updateDescription': 'Your latest changes are live. Open the Web App to verify the user experience.'
'agentDetail.configure.publishSuccess.updateTitle': 'Changes published'
'agentDetail.configure.rightPanel.build': 'Build'
'agentDetail.configure.rightPanel.buildTipBody': 'Build sets up the agent by chatting. Describe what you want and it fills in the setup on the left.'
'agentDetail.configure.rightPanel.learnMore': 'Learn more'
'agentDetail.configure.rightPanel.modeLabel': 'Agent configuration mode'
'agentDetail.configure.rightPanel.preview': 'Preview'
'agentDetail.configure.rightPanel.previewDisabledTip': 'Preview is available on Dify Cloud and Enterprise only.'
'agentDetail.configure.rightPanel.previewTipBody': 'Preview runs the finished agent the way your users will see it, with clean replies and chat features.'
'agentDetail.configure.skills.add': 'Add skill'
'agentDetail.configure.skills.addMenu.upload.badge': 'EMBEDDED'
'agentDetail.configure.skills.addMenu.upload.description': "A .zip containing SKILL.md. It's embedded in this app and won't update with the library."
'agentDetail.configure.skills.addMenu.upload.label': 'Upload skill.zip'
'agentDetail.configure.skills.addMenu.workspace.description': 'Reuses a shared skill and follows its published updates.'
'agentDetail.configure.skills.addMenu.workspace.label': 'Add from library'
'agentDetail.configure.skills.detail.files': 'Files'
'agentDetail.configure.skills.empty.description': 'Skills give the agent reusable expertise it can call while working'
'agentDetail.configure.skills.empty.title': 'No skills yet'
'agentDetail.configure.skills.label': 'Skills'
'agentDetail.configure.skills.missing': 'Skill not found'
'agentDetail.configure.skills.moreActions': 'More actions for {{name}}'
'agentDetail.configure.skills.openInLibrary': 'Open in Skill library'
'agentDetail.configure.skills.removeAction': 'Remove'
'agentDetail.configure.skills.richTip': 'Package the instructions, files, and scripts for a recurring task into a skill. <docLink>Learn more</docLink>\n\nIn Build mode, the agent can set these up for you.'
'agentDetail.configure.skills.tip': 'Package the instructions, files, and scripts for a recurring task into a skill. Learn more\n\nIn Build mode, the agent can set these up for you.'
'agentDetail.configure.skills.upload.action': 'Upload'
'agentDetail.configure.skills.upload.browse': 'browse'
'agentDetail.configure.skills.upload.description': 'Upload a .zip or .skill package for this agent.'
'agentDetail.configure.skills.upload.dropzone': 'Drop a skill package here, or'
'agentDetail.configure.skills.upload.fileType': 'ZIP / SKILL'
'agentDetail.configure.skills.upload.invalidFile': 'Upload a .zip or .skill file.'
'agentDetail.configure.skills.upload.sizeLimit': 'Skill package must be {{sizeLimit}} or smaller.'
'agentDetail.configure.skills.upload.success': 'Skill uploaded.'
'agentDetail.configure.skills.upload.title': 'Upload skill'
'agentDetail.configure.skills.upload.warning.files': 'If you only need to use Markdown files, upload them to Files and reference them in your prompt.'
'agentDetail.configure.skills.upload.warning.specification': 'Uploaded skills must follow the <specificationLink>Agent Skills specification</specificationLink>.'
'agentDetail.configure.skills.workspaceSelector.added': 'Added'
'agentDetail.configure.skills.workspaceSelector.draft': 'Draft'
'agentDetail.configure.skills.workspaceSelector.empty': 'No library skills found.'
'agentDetail.configure.skills.workspaceSelector.limitReached': 'An agent can use up to 20 library skills. Remove one to add another.'
'agentDetail.configure.skills.workspaceSelector.manage': 'Manage in Skills'
'agentDetail.configure.skills.workspaceSelector.saveFailed': 'Failed to update workspace skills.'
'agentDetail.configure.skills.workspaceSelector.search': 'Search skills...'
'agentDetail.configure.switchToPreviewConfirm.title': 'Switch to Preview mode?'
'agentDetail.configure.templatePreview.agentUI': 'Agent UI'
'agentDetail.configure.title': 'Configure'
'agentDetail.configure.tools.add': 'Add tool'
'agentDetail.configure.tools.addMenu.cliTool.badge': 'For developers'
'agentDetail.configure.tools.addMenu.cliTool.description': 'Install a command line program the agent runs in its sandbox. Needs install and usually API keys.'
'agentDetail.configure.tools.addMenu.cliTool.label': 'CLI tool'
'agentDetail.configure.tools.addMenu.tool.description': 'Pick a tool already in this workspace, like web search or integrations.'
'agentDetail.configure.tools.addMenu.tool.label': 'Tool'
'agentDetail.configure.tools.cliDialog.description': 'Install a CLI tool from any package registry. The agent gains shell access to the binary it provides.'
'agentDetail.configure.tools.cliDialog.editTitle': 'Edit CLI Tool'
'agentDetail.configure.tools.cliDialog.env.description': 'Store API keys, tokens, or secrets that this CLI tool needs. Values are encrypted at rest and injected as environment variables when the agent invokes the tool.'
'agentDetail.configure.tools.cliDialog.env.label': 'Environment Variables'
'agentDetail.configure.tools.cliDialog.env.optional': '(optional)'
'agentDetail.configure.tools.cliDialog.installCommand.description': 'Sandboxed · runs once on first invocation'
'agentDetail.configure.tools.cliDialog.installCommand.label': 'Install Command'
'agentDetail.configure.tools.cliDialog.installCommand.placeholder': 'Paste your install command here, e.g. npx -y @playwright/mcp@latest · uv tool install httpie'
'agentDetail.configure.tools.cliDialog.installCommand.required': 'Install command is required.'
'agentDetail.configure.tools.cliDialog.learnMore': 'Learn more about CLI Tool'
'agentDetail.configure.tools.cliDialog.name.label': 'CLI Tool Name'
'agentDetail.configure.tools.cliDialog.name.placeholder': 'Name your CLI tool'
'agentDetail.configure.tools.cliDialog.name.required': 'CLI tool name is required.'
'agentDetail.configure.tools.cliDialog.securityTip': 'Never visible to agent prompt; injected only as $VAR at runtime'
'agentDetail.configure.tools.cliDialog.title': 'Add a CLI Tool'
'agentDetail.configure.tools.cliTool': 'CLI Tool'
'agentDetail.configure.tools.credential.authOne': 'Auth 1'
'agentDetail.configure.tools.editAction': 'Edit {{name}}'
'agentDetail.configure.tools.empty.description': 'Tools let the agent act, like searching the web or calling your apps'
'agentDetail.configure.tools.empty.title': 'No tools yet'
'agentDetail.configure.tools.label': 'Tools'
'agentDetail.configure.tools.moreActions': 'More actions for {{name}}'
'agentDetail.configure.tools.removeAction': 'Remove {{name}}'
'agentDetail.configure.tools.removeProvider': 'Remove all tools'
'agentDetail.configure.tools.richTip': "Add Dify tools from your workspace. <docLink>Learn more</docLink>\n\nTools the agent installs in its sandbox won't appear here but stay available to it."
'agentDetail.configure.tools.toolTabs.all': 'All'
'agentDetail.configure.tools.toolTabs.cli': 'CLI'
'agentDetail.configure.tools.toolTabs.custom': 'Custom'
'agentDetail.configure.tools.toolTabs.mcp': 'MCP'
'agentDetail.configure.tools.toolTabs.plugins': 'Plugins'
'agentDetail.configure.tools.toolTabs.workflow': 'Workflow'
'agentDetail.configure.workingDirectory.breadcrumbLabel': 'File system path'
'agentDetail.configure.workingDirectory.description': 'Files the agent reads and writes as it runs. Anything it generates, like qna_report.pdf, shows up here.'
'agentDetail.configure.workingDirectory.fileSystem': 'File system'
'agentDetail.configure.workingDirectory.persistentFiles': 'Persistent'
'agentDetail.configure.workingDirectory.persistentFilesTooltip': "Files the agent keeps and can use everywhere it runs, including end users' conversations and workflows. Any changes made here during this build chat take effect once you Apply."
'agentDetail.configure.workingDirectory.temporaryFiles': 'Temporary'
'agentDetail.configure.workingDirectory.temporaryFilesTooltip': "Files the agent is working with in this build chat only. They're cleared when you exit Build mode or start a new chat."
'agentDetail.configure.workingDirectory.title': 'Working directory'
'agentDetail.documentTitle': 'Agent'
'agentDetail.logs.description': 'See every conversation with this agent, including user inputs and agent replies.'
'agentDetail.logs.empty': 'No logs found'
'agentDetail.logs.executionId': 'Execution ID'
'agentDetail.logs.filters.period.allTime': 'All time'
'agentDetail.logs.filters.period.last30days': 'Last 30 days'
'agentDetail.logs.filters.period.last7days': 'Last 7 days'
'agentDetail.logs.filters.search.label': 'Search logs'
'agentDetail.logs.filters.search.placeholder': 'Search'
'agentDetail.logs.filters.sort.lastCreatedTime': 'Last Created time'
'agentDetail.logs.filters.sort.lastUpdatedTime': 'Last Updated time'
'agentDetail.logs.filters.source.all': 'Source'
'agentDetail.logs.filters.source.empty': 'No sources found'
'agentDetail.logs.filters.source.label': 'Log source'
'agentDetail.logs.filters.source.loadFailed': 'Failed to load sources'
'agentDetail.logs.filters.source.loading': 'Loading sources…'
'agentDetail.logs.filters.source.searchLabel': 'Search sources'
'agentDetail.logs.filters.source.searchPlaceholder': 'Search'
'agentDetail.logs.filters.source.webapp': 'Webapp'
'agentDetail.logs.filters.source.workflow': 'Workflow'
'agentDetail.logs.learnMore': 'Learn more'
'agentDetail.logs.loadFailed': 'Failed to load logs'
'agentDetail.logs.notAvailable': 'N/A'
'agentDetail.logs.table.createdTime': 'Created Time'
'agentDetail.logs.table.endUser': 'End-user'
'agentDetail.logs.table.messageCount': 'Msg. Count'
'agentDetail.logs.table.operationRate': 'Op. Rate'
'agentDetail.logs.table.source': 'Source'
'agentDetail.logs.table.title': 'Title'
'agentDetail.logs.table.unread': 'Unread'
'agentDetail.logs.table.updatedTime': 'Updated Time'
'agentDetail.logs.table.userRate': 'User Rate'
'agentDetail.logs.title': 'Logs'
'agentDetail.metadata.sourceLabel': 'Source'
'agentDetail.monitoring.change': '{{value}} from previous period'
'agentDetail.monitoring.dateRangeLabel': 'Date range'
'agentDetail.monitoring.description': "Track this agent's activity, cost, and interaction quality across all access points."
'agentDetail.monitoring.learnMore': 'Learn more'
'agentDetail.monitoring.loadFailed': 'Failed to load monitoring data'
'agentDetail.monitoring.metrics.activeUsers.explanation': 'Unique end users who interacted with this agent.'
'agentDetail.monitoring.metrics.activeUsers.title': 'Active Users'
'agentDetail.monitoring.metrics.avgSessionInteractions.explanation': 'Average number of user messages per conversation.'
'agentDetail.monitoring.metrics.avgSessionInteractions.title': 'Avg. Session Interactions'
'agentDetail.monitoring.metrics.tokenOutputSpeed.explanation': 'Average tokens generated per second during an agent reply.'
'agentDetail.monitoring.metrics.tokenOutputSpeed.title': 'Token Output Speed'
'agentDetail.monitoring.metrics.tokenUsage.explanation': 'Tokens consumed and estimated cost.'
'agentDetail.monitoring.metrics.tokenUsage.title': 'Token Usage'
'agentDetail.monitoring.metrics.totalConversations.explanation': 'Daily AI conversations that reached this agent through the selected access point.'
'agentDetail.monitoring.metrics.totalConversations.title': 'Total Conversations'
'agentDetail.monitoring.metrics.totalMessages.explanation': 'Total user messages sent to this agent.'
'agentDetail.monitoring.metrics.totalMessages.title': 'Total Messages'
'agentDetail.monitoring.metrics.userSatisfactionRate.explanation': 'Percentage of agent replies that users rated with a like.'
'agentDetail.monitoring.metrics.userSatisfactionRate.title': 'User Satisfaction Rate'
'agentDetail.monitoring.pickSource': 'Pick an app'
'agentDetail.monitoring.sourceLabel': 'App'
'agentDetail.monitoring.sourceTrigger': 'Source {{name}}'
'agentDetail.monitoring.sources.all': 'All'
'agentDetail.monitoring.table.date': 'Date'
'agentDetail.monitoring.table.estimatedCost': 'Estimated cost'
'agentDetail.monitoring.table.hideData': 'Hide data'
'agentDetail.monitoring.table.value': 'Value'
'agentDetail.monitoring.table.viewData': 'View data'
'agentDetail.monitoring.timeRangeLabel': 'Time range'
'agentDetail.monitoring.timeRanges.custom': 'Custom'
'agentDetail.monitoring.timeRanges.last30days': 'Last 30 days'
'agentDetail.monitoring.timeRanges.last7days': 'Last 7 days'
'agentDetail.monitoring.timeRanges.today': 'Today'
'agentDetail.monitoring.title': 'Monitoring'
'agentDetail.monitoring.tokenUsageConsumed': 'Consumed tokens'
'agentDetail.monitoring.units.tokenPerSecond': 'Token/s'
'agentDetail.navigationLabel': 'Agent navigation'
'agentDetail.publish': 'Publish'
'agentDetail.sections.access': 'Access Point'
'agentDetail.sections.access-config': 'Resource Access'
'agentDetail.sections.configure': 'Configure'
'agentDetail.sections.logs': 'Logs'
'agentDetail.sections.monitoring': 'Monitoring'
'agentDetail.title': 'Agent'
'agentDetail.versionHistory.empty': 'No versions yet'
'agentDetail.versionHistory.exitVersions': 'Exit versions'
'agentDetail.versionHistory.filter': 'Filter versions'
'agentDetail.versionHistory.restore': 'Restore'
'agentDetail.versionHistory.versionName': 'Version {{version}}'
'agentDetail.versionHistory.viewOnly': 'View Only'
exportAgent: 'Export Agent'
}
app: {
'accessControlDialog.accessItems.anyone': 'Anyone with the link'
'accessControlDialog.accessItems.external': 'Authenticated external users'
'accessControlDialog.accessItems.organization': 'All members within the platform'
'accessControlDialog.accessItems.specific': 'Specific members within the platform'
'accessControlDialog.accessLabel': 'Who has access'
'accessControlDialog.description': 'Set web app access permissions'
'accessControlDialog.groups': '{{count}} GROUP' | '{{count}} GROUPS'
'accessControlDialog.members': '{{count}} MEMBER' | '{{count}} MEMBERS'
'accessControlDialog.noGroupsOrMembers': 'No groups or members selected'
'accessControlDialog.operateGroupAndMember.allMembers': 'All members'
'accessControlDialog.operateGroupAndMember.expand': 'Expand'
'accessControlDialog.operateGroupAndMember.noResult': 'No result'
'accessControlDialog.operateGroupAndMember.searchPlaceholder': 'Search groups and members'
'accessControlDialog.title': 'Web App Access Control'
'accessControlDialog.updateSuccess': 'Update successfully'
'accessControlDialog.webAppPublicAccessDisabledTip': 'Public access has been disabled by your administrator.'
'accessControlDialog.webAppSSONotEnabledTip': 'Please contact your organization administrator to configure external authentication for the web app.'
'answerIcon.description': 'Whether to use the web app icon to replace 🤖 in the shared application'
'answerIcon.descriptionInExplore': 'Whether to use the web app icon to replace 🤖 in Explore'
'answerIcon.title': 'Use web app icon to replace 🤖'
appDeleteFailed: 'Failed to delete app'
appDeleted: 'App deleted'
appNamePlaceholder: 'Give your app a name'
appPackage: 'App package'
'appSelector.label': 'APP'
'appSelector.noParams': 'No parameters needed'
'appSelector.params': 'APP PARAMETERS'
'appSelector.placeholder': 'Select an app...'
'appSelector.searchPlaceholder': 'Search apps by name…'
chooseAppFile: 'Choose an app package or DSL file'
deleteAppConfirmContent: 'Deleting the app is irreversible. Users will no longer be able to access your app, and all prompt configurations and logs will be permanently deleted.'
deleteAppConfirmInputLabel: 'To confirm, type <appName>{{appName}}</appName> in the box below:'
deleteAppConfirmInputPlaceholder: 'Enter app name…'
deleteAppConfirmTitle: 'Delete this app?'
'dslUploader.browse': 'Browse'
'dslUploader.button': 'Drag and drop file, or'
'dslUploader.invalidFileType': 'Unsupported file type. Select a {{types}} file.'
duplicate: 'Duplicate'
duplicateTitle: 'Duplicate App'
editApp: 'Edit Info'
editAppTitle: 'Edit App Info'
exportApp: 'Export App'
exportFailed: 'Export failed'
'exportSecret.description': 'If selected, secret values will be included in the exported app package.'
'exportSecret.title': 'Export app with secret values'
'filterEmpty.noApps': 'No apps here'
'firstEmpty.blankDescription': 'Start with an empty canvas and build your app step by step.'
'firstEmpty.importDescription': 'Import an app package or DSL file to restore a shared or backed-up app.'
'firstEmpty.learnDifyTitle': 'Learn Dify from Template'
'firstEmpty.or': 'Or'
'firstEmpty.templateDescription': 'Pick a ready-made app and customize it. The fastest way to see Dify in action.'
'firstEmpty.title': 'Build your first App'
'gotoAnything.actions.accountDesc': 'Open account settings'
'gotoAnything.actions.createAuto': 'Auto'
'gotoAnything.actions.createAutoDesc': 'Let AI pick Workflow or Chatflow from your description'
'gotoAnything.actions.createCategoryDesc': 'Create an app with AI'
'gotoAnything.actions.createChatflow': 'Chatflow'
'gotoAnything.actions.createChatflowDesc': 'Generate a chatflow (advanced chat) app from a description'
'gotoAnything.actions.createWorkflow': 'Workflow'
'gotoAnything.actions.createWorkflowDesc': 'Generate a workflow app from a description'
'gotoAnything.actions.discordDesc': 'Open Discord community'
'gotoAnything.actions.docDesc': 'Open documentation'
'gotoAnything.actions.goDesc': 'Go to a page'
'gotoAnything.actions.languageChangeDesc': 'Change language'
'gotoAnything.actions.refineDesc': 'Describe a change to apply to the current draft'
'gotoAnything.actions.refineTitle': 'Refine current graph'
'gotoAnything.actions.searchApplications': 'Search Applications'
'gotoAnything.actions.slashDesc': 'Execute commands (type / to see all available commands)'
'gotoAnything.actions.slashTitle': 'Commands'
'gotoAnything.actions.themeCategoryDesc': 'Change appearance'
'gotoAnything.actions.themeDarkDesc': 'Use dark appearance'
'gotoAnything.actions.themeLightDesc': 'Use light appearance'
'gotoAnything.actions.themeSystemDesc': 'Follow your OS appearance'
'gotoAnything.contextTokenHint': 'In an empty field, Backspace removes the current filter or page.'
'gotoAnything.emptyState.noAppsFound': 'No apps found'
'gotoAnything.emptyState.noKnowledgeBasesFound': 'No knowledge bases found'
'gotoAnything.emptyState.noPluginsFound': 'No integrations found'
'gotoAnything.emptyState.noWorkflowNodesFound': 'No workflow nodes found'
'gotoAnything.emptyState.tryDifferentTerm': 'Try a different search term'
'gotoAnything.groups.apps': 'Apps'
'gotoAnything.groups.commands': 'Commands'
'gotoAnything.groups.knowledgeBases': 'Knowledge Bases'
'gotoAnything.groups.plugins': 'Integrations'
'gotoAnything.groups.workflowNodes': 'Workflow Nodes'
'gotoAnything.noMatchingCommands': 'No matching commands found'
'gotoAnything.noResults': 'No results found'
'gotoAnything.quickAction': 'Quick action'
'gotoAnything.resultCount': '{{count}} result' | '{{count}} results'
'gotoAnything.searchFailed': 'Search failed'
'gotoAnything.searchHint': 'Search resources or actions. Use arrow keys to choose an item and Enter to open it.'
'gotoAnything.searchInScopePlaceholder': 'Search {{scope}}…'
'gotoAnything.searchOrFilterPlaceholder': 'Search resources or actions, or type @ to filter…'
'gotoAnything.searchPlaceholder': 'Search resources or actions…'
'gotoAnything.searchTemporarilyUnavailable': 'Search temporarily unavailable'
'gotoAnything.searchTitle': 'Search for anything'
'gotoAnything.searching': 'Searching…'
'gotoAnything.selectSearchType': 'Choose what to search for'
'gotoAnything.servicesUnavailableMessage': 'Some search services may be experiencing issues. Try again in a moment.'
'gotoAnything.someServicesUnavailable': 'Some search services unavailable'
'iconPicker.cancel': 'Cancel'
'iconPicker.chooseStyle': 'Choose Style'
'iconPicker.clearSearch': 'Clear search'
'iconPicker.color.blue': 'Blue'
'iconPicker.color.gray': 'Gray'
'iconPicker.color.green': 'Green'
'iconPicker.color.indigo': 'Indigo'
'iconPicker.color.lightBlue': 'Light blue'
'iconPicker.color.orange': 'Orange'
'iconPicker.color.pink': 'Pink'
'iconPicker.color.red': 'Red'
'iconPicker.color.rose': 'Rose'
'iconPicker.color.teal': 'Teal'
'iconPicker.color.violet': 'Violet'
'iconPicker.color.yellow': 'Yellow'
'iconPicker.crop': 'Crop image'
'iconPicker.currentEmoji': 'Current emoji: {{emoji}}'
'iconPicker.emoji': 'Emoji'
'iconPicker.image': 'Image'
'iconPicker.ok': 'OK'
'iconPicker.recent': 'Recent'
'iconPicker.recommend': 'Recommend'
'iconPicker.search': 'Search emoji...'
'iconPicker.title': 'Choose icon'
'iconPicker.tryYourLuck': 'Try your luck'
'iconPicker.zoom': 'Zoom'
ifpkgDownloaded: 'IFPKG file downloaded'
importApp: 'Import App'
importAppDescription: 'App package or DSL file'
importAppFormats: 'Supports .ifpkg, .yaml, and .yml'
importAppUrlPlaceholder: 'Paste an app package (.ifpkg) or DSL link here'
importFromDSL: 'Import from DSL'
importFromDSLFile: 'From DSL file'
importFromDSLUrl: 'From URL'
importFromDSLUrlPlaceholder: 'Paste DSL link here'
importFromFile: 'From file'
'marketplace.template.category.design': 'Design'
'marketplace.template.category.it': 'IT'
'marketplace.template.category.knowledge': 'Knowledge'
'marketplace.template.category.marketing': 'Marketing'
'marketplace.template.category.operations': 'Operations'
'marketplace.template.category.sales': 'Sales'
'marketplace.template.category.support': 'Support'
'marketplace.template.fetchFailed': 'Failed to fetch template'
'marketplace.template.importConfirm': 'Import'
'marketplace.template.importFailed': 'Failed to import template'
'marketplace.template.modalTitle': 'Import from Marketplace'
'marketplace.template.overview': 'Overview'
'marketplace.template.publishedBy': 'By'
'marketplace.template.usageCount': 'Usage'
maxActiveRequests: 'Max concurrent requests'
maxActiveRequestsPlaceholder: 'Enter 0 for unlimited'
maxActiveRequestsTip: 'Maximum number of concurrent active requests per app (0 for unlimited)'
'mermaid.preview': 'Preview diagram'
'newApp.Cancel': 'Cancel'
'newApp.Confirm': 'Confirm'
'newApp.Create': 'Create'
'newApp.advancedShortDescription': 'Workflow enhanced for multi-turn chats'
'newApp.advancedUserDescription': 'Workflow with additional memory features and a chatbot interface.'
'newApp.agentShortDescription': 'Intelligent agent with reasoning and autonomous tool use'
'newApp.agentUserDescription': 'An intelligent agent capable of iterative reasoning and autonomous tool use to achieve task goals.'
'newApp.appCreateDSLErrorPart1': 'A significant difference in DSL versions has been detected. Forcing the import may cause the application to malfunction.'
'newApp.appCreateDSLErrorPart2': 'Do you want to continue?'
'newApp.appCreateDSLErrorPart3': 'Current application DSL version: '
'newApp.appCreateDSLErrorPart4': 'System-supported DSL version: '
'newApp.appCreateDSLErrorTitle': 'Version Incompatibility'
'newApp.appCreateDSLWarning': 'Caution: DSL version difference may affect certain features'
'newApp.appCreateFailed': 'Failed to create app'
'newApp.appCreated': 'App created'
'newApp.appDescriptionPlaceholder': 'Enter the description of the app'
'newApp.appNamePlaceholder': 'Give your app a name'
'newApp.appTypeRequired': 'Please select an app type'
'newApp.captionDescription': 'Description'
'newApp.captionName': 'App Name & Icon'
'newApp.caution': 'Caution'
'newApp.chatbotShortDescription': 'LLM-based chatbot with simple setup'
'newApp.chatbotUserDescription': 'Quickly build an LLM-based chatbot with simple configuration. You can switch to Chatflow later.'
'newApp.chooseAppType': 'Choose an App Type'
'newApp.completeApp': 'Text Generator'
'newApp.completionShortDescription': 'AI assistant for text generation tasks'
'newApp.completionUserDescription': 'Quickly build an AI assistant for text generation tasks with simple configuration.'
'newApp.dropDSLToCreateApp': 'Drop an app package or DSL file here to create an app'
'newApp.forBeginners': 'More basic app types'
'newApp.foundResult': '{{count}} Result'
'newApp.foundResults': '{{count}} Results'
'newApp.import': 'Import'
'newApp.name': 'App name'
'newApp.nameNotEmpty': 'Name cannot be empty'
'newApp.noIdeaTip': 'No ideas? Check out our templates'
'newApp.noTemplateFound': 'No templates found'
'newApp.noTemplateFoundTip': 'Try searching using different keywords.'
'newApp.optional': 'Optional'
'newApp.startFromBlank': 'Create from Blank'
'newApp.startFromTemplate': 'Create from Template'
'newApp.useTemplate': 'Use this template'
'newApp.workflowShortDescription': 'Agentic flow for intelligent automations'
'newApp.workflowUserDescription': 'Visually build autonomous AI workflows with drag-and-drop simplicity.'
'newAppFromTemplate.byCategories': 'BY CATEGORIES'
'newAppFromTemplate.searchAllTemplate': 'Search all templates...'
'newAppFromTemplate.sidebar.Recommended': 'All'
noAccessPermission: 'No permission to access web app'
noAccessResourcePermission: 'No permission to access this resource'
noUserInputNode: 'Missing user input node'
notPublishedYet: 'App is not published yet'
openInExplore: 'Open Sidebar Web App'
'publishApp.notSet': 'Not set'
removeOriginal: 'Delete the original app'
'structOutput.configure': 'Configure'
'structOutput.modelNotSupported': 'Model not supported'
'structOutput.modelNotSupportedTip': 'The current model does not support this feature and is automatically downgraded to prompt injection.'
'structOutput.moreFillTip': 'Showing max 10 levels of nesting'
'structOutput.notConfiguredTip': 'Structured output has not been configured yet'
'structOutput.required': 'Required'
'structOutput.structured': 'Structured'
'structOutput.structuredTip': 'Structured Outputs is a feature that ensures the model will always generate responses that adhere to your supplied JSON Schema'
'studio.allApps': 'All Apps'
'studio.filters.creators': 'Creators'
'studio.filters.reset': 'Reset'
'studio.filters.searchCreators': 'Search creator...'
'studio.filters.types': 'Types'
'studio.filters.you': 'You'
'studio.sort.earliestCreated': 'Earliest created'
'studio.sort.lastModified': 'Last modified'
'studio.sort.recentlyCreated': 'Recently created'
'studio.sort.sortBy': 'Sort by'
'studio.starApp': 'Star app'
'studio.starFailed': 'Failed to update star'
'studio.starred': 'Starred'
'studio.viewSnippets': 'Snippets'
switch: 'Switch to Workflow Orchestrate'
switchLabel: 'The app copy to be created'
switchStart: 'Start switch'
switchTip: 'not allow'
switchTipEnd: ' switching back to Basic Orchestrate.'
switchTipStart: 'A new app copy will be created for you, and the new copy will switch to Workflow Orchestrate. The new copy will '
'tracing.agentSpansUnsupported': '{{provider}} does not support full Agent traces yet.'
'tracing.agentTracingUnavailable': "Agent tracing isn't available, so traces won't include Agent internals or run links."
'tracing.aliyun.description': 'The fully-managed and maintenance-free observability platform provided by Alibaba Cloud, enables out-of-the-box monitoring, tracing, and evaluation of Dify applications.'
'tracing.aliyun.title': 'Cloud Monitor'
'tracing.arize.description': 'Enterprise-grade LLM observability, online & offline evaluation, monitoring, and experimentation—powered by OpenTelemetry. Purpose-built for LLM & agent-driven applications.'
'tracing.arize.title': 'Arize'
'tracing.capabilities': 'Provider capabilities'
'tracing.capabilitiesLoadFailed': 'Unable to load provider capabilities.'
'tracing.capability.agent_spans': 'Agent spans'
'tracing.capability.native_cost': 'Native cost'
'tracing.capability.native_usage': 'Native usage'
'tracing.capability.session': 'Sessions'
'tracing.capability.span_url': 'Span links'
'tracing.capability.trace_url': 'Trace links'
'tracing.capabilitySummary.allSupported': 'All supported'
'tracing.capabilitySummary.unsupported': '{{count}} unsupported'
'tracing.captureAgent': 'Capture Agent internals'
'tracing.captureAgentDescription': "Send the Agent's internal model and tool calls"
'tracing.captureContent': 'Capture content'
'tracing.captureContentDescription': "Send each run's inputs and outputs"
'tracing.captureTitle': 'Agent data capture'
'tracing.config': 'Config'
'tracing.configProvider.clientId': 'OAuth Client ID'
'tracing.configProvider.clientSecret': 'OAuth Client Secret'
'tracing.configProvider.configuredSecretPlaceholder': 'Configured. Leave blank to keep the saved value.'
'tracing.configProvider.databricksHost': 'Databricks Workspace URL'
'tracing.configProvider.experimentId': 'Experiment ID'
'tracing.configProvider.password': 'Password'
'tracing.configProvider.personalAccessToken': 'Personal Access Token (legacy)'
'tracing.configProvider.placeholder': 'Enter your {{key}}'
'tracing.configProvider.project': 'Project'
'tracing.configProvider.publicKey': 'Public Key'
'tracing.configProvider.removeConfirmContentInUse': 'Tracing will turn off, and the saved credentials will be deleted.'
'tracing.configProvider.removeConfirmContentNotInUse': "The saved credentials will be deleted. You'll need to enter them again to use {{key}}."
'tracing.configProvider.removeConfirmTitle': 'Remove {{key}} configuration?'
'tracing.configProvider.secretKey': 'Secret Key'
'tracing.configProvider.title': 'Config '
'tracing.configProvider.trackingUri': 'Tracking URI'
'tracing.configProvider.username': 'Username'
'tracing.configProvider.viewDocsLink': 'View {{key}} docs'
'tracing.configProviderTitle.configured': 'Configured'
'tracing.configProviderTitle.moreProviders': 'More providers'
'tracing.configProviderTitle.notConfigured': 'Config provider to enable tracing'
'tracing.databricks.description': 'Databricks offers fully-managed MLflow with strong governance and security for storing trace data.'
'tracing.databricks.title': 'Databricks'
'tracing.disabled': 'Disabled'
'tracing.disabledTip': 'Please config provider first'
'tracing.enabled': 'In Service'
'tracing.inUse': 'In use'
'tracing.inherited.description': "When this Agent runs in this workflow, it uses the workflow's tracing settings, including provider, on/off state, and capture policy. The Agent's own tracing settings don't apply here, and the node needs no separate setup."
'tracing.inherited.loadFailed': 'Unable to load tracing status.'
'tracing.inherited.notConfigured': 'Not configured'
'tracing.inherited.off': 'Off'
'tracing.inherited.on': 'On'
'tracing.inherited.providerDisabled': '{{provider}} disabled'
'tracing.inherited.providerEnabled': '{{provider}} enabled'
'tracing.inherited.settings': 'Configure in workflow'
'tracing.inherited.title': 'External tracing'
'tracing.langfuse.description': 'Open-source LLM observability, evaluation, prompt management and metrics to debug and improve your LLM application.'
'tracing.langfuse.title': 'Langfuse'
'tracing.langsmith.description': 'An all-in-one developer platform for every step of the LLM-powered application lifecycle.'
'tracing.langsmith.title': 'LangSmith'
'tracing.mlflow.description': 'MLflow is an open-source platform for experiment management, evaluation, and monitoring of LLM applications.'
'tracing.mlflow.title': 'MLflow'
'tracing.opik.description': 'Opik is an open-source platform for evaluating, testing, and monitoring LLM applications.'
'tracing.opik.title': 'Opik'
'tracing.phoenix.description': 'Open-source & OpenTelemetry-based observability, evaluation, prompt engineering and experimentation platform for your LLM workflows and agents.'
'tracing.phoenix.title': 'Phoenix'
'tracing.readOnly': 'View only'
'tracing.run.accepted': 'Sent to {{provider}}'
'tracing.run.failed': 'Failed to send to {{provider}}'
'tracing.run.pending': 'Sending to {{provider}}'
'tracing.run.title': 'External tracing'
'tracing.run.uncertain': '{{provider}} has not confirmed receipt'
'tracing.run.viewProject': 'Open project'
'tracing.run.viewSpan': 'View this node'
'tracing.run.viewTrace': 'View this run'
'tracing.supported': 'Supported'
'tracing.tencent.description': 'Tencent Application Performance Monitoring provides comprehensive tracing and multi-dimensional analysis for LLM applications.'
'tracing.tencent.endpointHelp': 'Copy the endpoint for your region and network from Tencent Cloud LLM Observability → Applications → Connect application.'
'tracing.tencent.serviceNameHelp': 'Up to 63 characters: lowercase letters, digits, and hyphens. Start with a lowercase letter and end with a letter or digit.'
'tracing.tencent.title': 'Tencent APM'
'tracing.title': 'Tracing app performance'
'tracing.tracing': 'Tracing'
'tracing.tracingDescription': 'Capture the full context of app execution, including LLM calls, context, prompts, HTTP requests, and more, to a third-party tracing platform.'
'tracing.unsupported': 'Unavailable'
'tracing.view': 'View'
'tracing.weave.description': 'Weave is an open-source platform for evaluating, testing, and monitoring LLM applications.'
'tracing.weave.title': 'Weave'
'typeSelector.advanced': 'Chatflow'
'typeSelector.agent': 'Agent'
'typeSelector.all': 'All Types '
'typeSelector.chatbot': 'Chatbot'
'typeSelector.completion': 'Completion'
'typeSelector.workflow': 'Workflow'
'types.advanced': 'Chatflow'
'types.agent': 'Agent'
'types.all': 'All'
'types.chatbot': 'Chatbot'
'types.completion': 'Completion'
'types.workflow': 'Workflow'
}
appAnnotation: {
'addModal.answerName': 'Answer'
'addModal.answerPlaceholder': 'Type answer here'
'addModal.createNext': 'Add another annotated response'
'addModal.queryName': 'Question'
'addModal.queryPlaceholder': 'Type query here'
'addModal.title': 'Add Annotation Reply'
'batchAction.selected': 'Selected'
'batchModal.answer': 'answer'
'batchModal.browse': 'browse'
'batchModal.cancel': 'Cancel'
'batchModal.completed': 'Import completed'
'batchModal.csvUploadTitle': 'Drag and drop your CSV file here, or '
'batchModal.question': 'question'
'batchModal.run': 'Run Batch'
'batchModal.runError': 'Run batch failed'
'batchModal.template': 'Download the template here'
'batchModal.title': 'Bulk Import'
editBy: 'Answer edited by {{author}}'
'editModal.answerName': 'Storyteller Bot'
'editModal.answerPlaceholder': 'Type your answer here'
'editModal.createdAt': 'Created At'
'editModal.queryName': 'User Query'
'editModal.queryPlaceholder': 'Type your query here'
'editModal.removeThisCache': 'Remove this Annotation'
'editModal.title': 'Edit Annotation Reply'
'editModal.yourAnswer': 'Your Answer'
'editModal.yourQuery': 'Your Query'
embeddingModelSwitchTip: 'Annotation text vectorization model, switching models will be re-embedded, resulting in additional costs.'
'errorMessage.answerRequired': 'Answer is required'
'errorMessage.queryRequired': 'Question is required'
'hitHistoryTable.match': 'Match'
'hitHistoryTable.query': 'Query'
'hitHistoryTable.response': 'Response'
'hitHistoryTable.score': 'Score'
'hitHistoryTable.source': 'Source'
'hitHistoryTable.time': 'Time'
'initSetup.configConfirmBtn': 'Save'
'initSetup.configTitle': 'Annotation Reply Setup'
'initSetup.confirmBtn': 'Save & Enable'
'initSetup.title': 'Annotation Reply Initial Setup'
'list.delete.title': 'Are you sure Delete?'
name: 'Annotation Reply'
'noData.description': 'You can edit annotations during app debugging or import annotations in bulk here for a high-quality response.'
'noData.title': 'No annotations'
'table.header.actions': 'actions'
'table.header.addAnnotation': 'Add Annotation'
'table.header.answer': 'answer'
'table.header.bulkExport': 'Bulk Export'
'table.header.bulkImport': 'Bulk Import'
'table.header.clearAll': 'Delete All'
'table.header.clearAllConfirm': 'Delete all annotations?'
'table.header.createdAt': 'created at'
'table.header.hits': 'hits'
'table.header.question': 'question'
title: 'Annotations'
'viewModal.annotatedResponse': 'Annotation Reply'
'viewModal.hit': 'Hit'
'viewModal.hitHistory': 'Hit History'
'viewModal.hits': 'Hits'
'viewModal.noHitHistory': 'No hit history'
}
appApi: {
'actionMsg.deleteConfirmTips': 'This action cannot be undone.'
'actionMsg.deleteConfirmTitle': 'Delete this secret key?'
'apiKeyModal.actions': 'Actions'
'apiKeyModal.addKnowledgeBase': 'Add'
'apiKeyModal.addSubtitle': 'Create a new API key for your workspace.'
'apiKeyModal.addTitle': 'Add API Key'
'apiKeyModal.apiSecretKey': 'API Key'
'apiKeyModal.apiSecretKeyTips': 'To prevent API abuse, protect your API Key. Avoid using it as plain text in front-end code. :)'
'apiKeyModal.createNewSecretKey': 'Create new Secret key'
'apiKeyModal.created': 'CREATED'
'apiKeyModal.createdTitle': 'API key created'
'apiKeyModal.emptyState': 'No API keys yet. Create one to access the API.'
'apiKeyModal.generateTips': 'Keep this key in a secure and accessible place.'
'apiKeyModal.keyLimit': 'You can create up to {{limit}} API keys.'
'apiKeyModal.keyLimitReached': 'Delete an unused key before creating another.'
'apiKeyModal.knowledgeBaseAccess': 'Knowledge Base Access'
'apiKeyModal.knowledgeSpaceBadge': 'Agent Knowledge Base'
'apiKeyModal.lastUsed': 'LAST USED'
'apiKeyModal.loadDatasetsError': 'Failed to load Knowledge Bases.'
'apiKeyModal.loadKnowledgeSpacesError': 'Failed to load Agent Knowledge Bases.'
'apiKeyModal.loadMoreDatasets': 'Load more Knowledge Bases'
'apiKeyModal.loadMoreKnowledgeSpaces': 'Load more Agent Knowledge Bases'
'apiKeyModal.noKnowledgeBasesSelected': 'No knowledge bases selected'
'apiKeyModal.pickerKnowledgeSpaces': 'Agent Knowledge Bases'
'apiKeyModal.pickerLegacyDatasets': 'Knowledge Bases'
'apiKeyModal.revealOnceTips': 'Copy and store this key securely now. After closing, you cannot view the full key again in this interface.'
'apiKeyModal.saved': 'I have saved this key'
'apiKeyModal.scope': 'SCOPE'
'apiKeyModal.scopeAllDatasets': 'All Knowledge Bases'
'apiKeyModal.scopeAllDatasetsTip': 'Search and retrieve from all available knowledge bases.'
'apiKeyModal.scopeCount': '{{count}} knowledge bases'
'apiKeyModal.scopeSpecificDatasets': 'Specific Knowledge Bases'
'apiKeyModal.scopeSpecificDatasetsTip': 'Select which knowledge bases to include in search.'
'apiKeyModal.searchKnowledgeBases': 'Search Knowledge Bases'
'apiKeyModal.secretKey': 'Secret Key'
'apiKeyModal.selectedKnowledgeBases': 'Selected Knowledge Bases'
'apiKeyModal.selectedKnowledgeBasesCount': '{{count}} Knowledge Bases'
'apiKeyModal.workspaceKeyLimit': 'You can create up to {{limit}} knowledge API keys per workspace.'
copied: 'Copied'
copy: 'Copy'
loading: 'Loading'
never: 'Never'
pause: 'Pause'
play: 'Play'
playing: 'Playing'
}
appDebug: {
'agent.agentMode': 'Agent Mode'
'agent.agentModeDes': 'Set the type of inference mode for the agent'
'agent.agentModeType.ReACT': 'ReAct'
'agent.agentModeType.functionCall': 'Function Calling'
'agent.setting.maximumIterations.description': 'Limit the number of iterations an agent assistant can execute'
'agent.setting.maximumIterations.name': 'Maximum Iterations'
'agent.setting.name': 'Agent Settings'
'agent.tools.description': 'Using tools can extend the capabilities of LLM, such as searching the internet or performing scientific calculations'
'agent.tools.enabled': 'Enabled'
'agent.tools.name': 'Tools'
autoAddVar: 'Undefined variables referenced in pre-prompt, are you want to add them in user input form?'
chatSubTitle: 'Instructions'
'code.instruction': 'Instruction'
completionSubTitle: 'Prefix Prompt'
'datasetConfig.embeddingModelRequired': 'A configured Embedding Model is required'
'datasetConfig.knowledgeTip': 'Click the “+” button to add knowledge'
'datasetConfig.rerankModelRequired': 'A configured Rerank Model is required'
'datasetConfig.retrieveChangeTip': 'Modifying the index mode and retrieval mode may affect applications associated with this Knowledge.'
'datasetConfig.score_threshold': 'Score Threshold'
'datasetConfig.score_thresholdTip': 'Used to set the similarity threshold for chunks filtering.'
'datasetConfig.top_k': 'Top K'
'datasetConfig.top_kTip': 'Used to filter chunks that are most similar to user questions. The system will also dynamically adjust the value of Top K, according to max_tokens of the selected model.'
debugAsMultipleModel: 'Debug as Multiple Models'
debugAsSingleModel: 'Debug as Single Model'
duplicateModel: 'Duplicate'
'errorMessage.valueOfVarRequired': '{{key}} value can not be empty'
'errorMessage.waitForBatchResponse': 'Please wait for the response to the batch task to complete.'
'errorMessage.waitForFileUpload': 'Please wait for the file/files to upload'
'errorMessage.waitForResponse': 'Please wait for the response to the previous message to complete.'
'feature.annotation.add': 'Add annotation'
'feature.annotation.cacheManagement': 'Annotations'
'feature.annotation.description': 'You can manually add high-quality response to the cache for prioritized matching with similar user questions.'
'feature.annotation.edit': 'Edit annotation'
'feature.annotation.remove': 'Remove'
'feature.annotation.removeConfirm': 'Delete this annotation ?'
'feature.annotation.scoreThreshold.accurateMatch': 'Accurate Match'
'feature.annotation.scoreThreshold.description': 'Used to set the similarity threshold for annotation reply.'
'feature.annotation.scoreThreshold.easyMatch': 'Easy Match'
'feature.annotation.scoreThreshold.title': 'Score Threshold'
'feature.annotation.title': 'Annotation Reply'
'feature.bar.empty': 'Enable feature to enhance web app user experience'
'feature.bar.enableText': 'Features Enabled'
'feature.bar.manage': 'Manage'
'feature.citation.description': 'Show source document and attributed section of the generated content.'
'feature.citation.title': 'Citations and Attributions'
'feature.conversationHistory.description': 'Set prefix names for conversation roles'
'feature.conversationHistory.editModal.assistantPrefix': 'Assistant prefix'
'feature.conversationHistory.editModal.title': 'Edit Conversation Role Names'
'feature.conversationHistory.editModal.userPrefix': 'User prefix'
'feature.conversationHistory.tip': 'The Conversation History is not enabled, please add <histories> in the prompt above.'
'feature.conversationHistory.title': 'Conversation History'
'feature.conversationOpener.description': 'In a chat app, the first sentence that the AI actively speaks to the user is usually used as a welcome.'
'feature.conversationOpener.title': 'Conversation Opener'
'feature.dataSet.noData': 'You can import Knowledge as context'
'feature.dataSet.noDataSet': 'No Knowledge found'
'feature.dataSet.queryVariable.choosePlaceholder': 'Choose query variable'
'feature.dataSet.queryVariable.contextVarNotEmpty': 'context query variable can not be empty'
'feature.dataSet.queryVariable.deleteContextVarTip': 'This variable has been set as a context query variable, and removing it will impact the normal use of the Knowledge. If you still need to delete it, please reselect it in the context section.'
'feature.dataSet.queryVariable.deleteContextVarTitle': 'Delete variable “{{varName}}”?'
'feature.dataSet.queryVariable.noVar': 'No variables'
'feature.dataSet.queryVariable.noVarTip': 'please create a variable under the Variables section'
'feature.dataSet.queryVariable.ok': 'OK'
'feature.dataSet.queryVariable.tip': 'This variable will be used as the query input for context retrieval, obtaining context information related to the input of this variable.'
'feature.dataSet.queryVariable.title': 'Query variable'
'feature.dataSet.queryVariable.unableToQueryDataSet': 'Unable to query the Knowledge'
'feature.dataSet.queryVariable.unableToQueryDataSetTip': 'Unable to query the Knowledge successfully, please choose a context query variable in the context section.'
'feature.dataSet.selectTitle': 'Select reference Knowledge'
'feature.dataSet.selected': 'Knowledge selected'
'feature.dataSet.title': 'Knowledge'
'feature.dataSet.toCreate': 'Go to create'
'feature.moderation.allEnabled': 'INPUT & OUTPUT'
'feature.moderation.contentEnableLabel': 'Content moderation enabled'
'feature.moderation.description': 'Secure model output by using moderation API or maintaining a sensitive word list.'
'feature.moderation.inputEnabled': 'INPUT'
'feature.moderation.modal.content.condition': 'Moderate INPUT and OUTPUT Content enabled at least one'
'feature.moderation.modal.content.errorMessage': 'Preset replies cannot be empty'
'feature.moderation.modal.content.fromApi': 'Preset replies are returned by API'
'feature.moderation.modal.content.input': 'Moderate INPUT Content'
'feature.moderation.modal.content.output': 'Moderate OUTPUT Content'
'feature.moderation.modal.content.placeholder': 'Preset replies content here'
'feature.moderation.modal.content.preset': 'Preset replies'
'feature.moderation.modal.content.supportMarkdown': 'Markdown supported'
'feature.moderation.modal.keywords.line': 'Line'
'feature.moderation.modal.keywords.placeholder': 'One per line, separated by line breaks'
'feature.moderation.modal.keywords.tip': 'One per line, separated by line breaks. Up to 100 characters per line.'
'feature.moderation.modal.openaiNotConfig.after': ''
'feature.moderation.modal.openaiNotConfig.before': 'OpenAI Moderation requires an OpenAI API key configured in the'
'feature.moderation.modal.provider.keywords': 'Keywords'
'feature.moderation.modal.provider.openai': 'OpenAI Moderation'
'feature.moderation.modal.provider.title': 'Provider'
'feature.moderation.modal.title': 'Content moderation settings'
'feature.moderation.outputEnabled': 'OUTPUT'
'feature.moderation.title': 'Content moderation'
'feature.moreLikeThis.description': 'Generate multiple texts at once, and then edit and continue to generate'
'feature.moreLikeThis.tip': 'Using this feature will incur additional tokens overhead'
'feature.moreLikeThis.title': 'More like this'
'feature.showThoughts.description': 'Display the model’s thinking in conversations.'
'feature.showThoughts.title': 'Show thinking'
'feature.speechToText.description': 'Voice input can be used in chat.'
'feature.speechToText.title': 'Speech to Text'
'feature.suggestedQuestionsAfterAnswer.description': 'Setting up next questions suggestion can give users a better chat.'
'feature.suggestedQuestionsAfterAnswer.modal.customPromptOption': 'Custom prompt'
'feature.suggestedQuestionsAfterAnswer.modal.customPromptOptionDescription': 'Write and use your own follow-up generation prompt.'
'feature.suggestedQuestionsAfterAnswer.modal.defaultModel': 'System default model'
'feature.suggestedQuestionsAfterAnswer.modal.defaultPromptOption': 'System default prompt'
'feature.suggestedQuestionsAfterAnswer.modal.defaultPromptOptionDescription': 'Use the built-in prompt for follow-up question generation.'
'feature.suggestedQuestionsAfterAnswer.modal.modelLabel': 'Model'
'feature.suggestedQuestionsAfterAnswer.modal.promptLabel': 'Prompt'
'feature.suggestedQuestionsAfterAnswer.modal.promptPlaceholder': 'Enter a custom prompt'
'feature.suggestedQuestionsAfterAnswer.modal.title': 'Follow-up settings'
'feature.suggestedQuestionsAfterAnswer.title': 'Follow-up'
'feature.suggestedQuestionsAfterAnswer.tryToAsk': 'Try to ask'
'feature.textToSpeech.description': 'Conversation messages can be converted to speech.'
'feature.textToSpeech.title': 'Text to Speech'
'feature.tools.modal.name.placeholder': 'Please enter the name'
'feature.tools.modal.name.title': 'Name'
'feature.tools.modal.toolType.title': 'Tool Type'
'feature.tools.modal.variableName.placeholder': 'Please enter the variable name'
'feature.tools.modal.variableName.title': 'Variable Name'
formattingChangedText: 'Modifying the formatting will reset the debug area, are you sure?'
formattingChangedTitle: 'Formatting changed'
'inputs.completionVarTip': 'Fill in the value of the variable, which will be automatically replaced in the prompt words every time a question is submitted.'
'inputs.run': 'RUN'
'inputs.title': 'Debug & Preview'
'inputs.userInputField': 'User Input Field'
'legacyAgentBadge.action': 'Create Agent'
'legacyAgentBadge.description': 'This legacy Agent app type is deprecated. For a better agent-building experience, create an Agent in Agent Console.'
'legacyAgentBadge.label': 'Legacy Agent'
manageModels: 'Manage models'
noModelProviderConfigured: 'No model provider configured'
noModelProviderConfiguredTip: 'Install or configure a model provider to get started.'
noModelSelected: 'No model selected'
noModelSelectedTip: 'configure a model above to continue.'
noResult: 'Output will be displayed here.'
notSetVar: 'Variables allow users to introduce prompt words or opening remarks when filling out forms. You can try entering "{{input}}" in the prompt words.'
'openingStatement.editorTitle': 'Opener Message'
'openingStatement.openingQuestion': 'Opening Questions'
'openingStatement.openingQuestionDescription': 'Optional prompts shown after the opener to help users continue the conversation.'
'openingStatement.openingQuestionPlaceholder': 'Enter an opening question.'
'openingStatement.placeholderLine1': 'Start here. Write the first message the AI should send.'
'openingStatement.placeholderLine2': 'You can use variables, try typing {{variable}}.'
'openingStatement.writeOpener': 'Edit opener'
'operation.agree': 'like'
'operation.applyConfig': 'Publish'
'operation.automatic': 'Generate'
'operation.cancelAgree': 'Cancel like'
'operation.cancelDisagree': 'Cancel dislike'
'operation.debugConfig': 'Debug'
'operation.disagree': 'dislike'
'operation.stopResponding': 'Stop responding'
orchestrate: 'Orchestrate'
'otherError.historyNoBeEmpty': 'Conversation history must be set in the prompt'
'otherError.promptNoBeEmpty': 'Prompt can not be empty'
'otherError.queryNoBeEmpty': 'Query must be set in the prompt'
'pageTitle.line1': 'PROMPT'
'promptMode.advanced': 'Expert Mode'
'promptMode.contextMissing': 'Context component missed, the effectiveness of the prompt may not be good.'
'promptMode.operation.addMessage': 'Add Message'
promptTip: "Prompts guide AI responses with instructions and constraints. Insert variables like {{input}}. This prompt won't be visible to users."
publishAs: 'Publish as'
'resetConfig.message': 'Reset discards changes, restoring the last published configuration.'
'resetConfig.title': 'Confirm reset?'
result: 'Output Text'
'trailUseGPT4Info.description': 'Use gpt-4, please set API Key.'
'trailUseGPT4Info.title': 'Does not support gpt-4 now'
'varKeyError.canNoBeEmpty': '{{key}} is required'
'varKeyError.keyAlreadyExists': '{{key}} already exists'
'varKeyError.notStartWithNumber': '{{key}} can not start with a number'
'varKeyError.notValid': '{{key}} is invalid. Can only contain letters, numbers, and underscores'
'varKeyError.tooLong': '{{key}} is too length. Can not be longer then 30 characters'
'variableConfig.addModalTitle': 'Add Input Field'
'variableConfig.addOption': 'Add option'
'variableConfig.apiBasedVar': 'API-based Variable'
'variableConfig.both': 'Both'
'variableConfig.checkbox': 'Checkbox'
'variableConfig.content': 'Content'
'variableConfig.defaultValue': 'Default Value'
'variableConfig.defaultValuePlaceholder': 'Enter default value to pre-populate the field'
'variableConfig.displayName': 'Display Name'
'variableConfig.editModalTitle': 'Edit Input Field'
'variableConfig.errorMsg.atLeastOneOption': 'At least one option is required'
'variableConfig.errorMsg.jsonSchemaInvalid': 'JSON Schema is not valid JSON'
'variableConfig.errorMsg.jsonSchemaMustBeObject': 'JSON Schema must have type "object"'
'variableConfig.errorMsg.labelNameRequired': 'Label name is required'
'variableConfig.errorMsg.optionRepeat': 'Has repeat options'
'variableConfig.fieldType': 'Field Type'
'variableConfig.file.audio.name': 'Audio'
'variableConfig.file.custom.createPlaceholder': '+ File extension, e.g .doc'
'variableConfig.file.custom.description': 'Specify other file types.'
'variableConfig.file.custom.name': 'Other file types'
'variableConfig.file.document.name': 'Document'
'variableConfig.file.image.name': 'Image'
'variableConfig.file.supportFileTypes': 'Support File Types'
'variableConfig.file.video.name': 'Video'
'variableConfig.hidden': 'Hidden & Pre-Filled'
'variableConfig.hiddenDescription': 'Hide this field from end users and supply its value yourself. Mutually exclusive with Required. <docLink>Learn more</docLink>'
'variableConfig.inputPlaceholder': 'Please input'
'variableConfig.json': 'JSON Code'
'variableConfig.jsonSchema': 'JSON Schema'
'variableConfig.labelName': 'Label Name'
'variableConfig.localUpload': 'Local Upload'
'variableConfig.maxLength': 'Max Length'
'variableConfig.maxNumberOfUploads': 'Max number of uploads'
'variableConfig.maxNumberTip': 'Document < {{docLimit}}, image < {{imgLimit}}, audio < {{audioLimit}}, video < {{videoLimit}}'
'variableConfig.multi-files': 'File List'
'variableConfig.noDefaultSelected': "Don't select"
'variableConfig.noDefaultValue': 'No default value'
'variableConfig.number': 'Number'
'variableConfig.optional': 'optional'
'variableConfig.options': 'Options'
'variableConfig.paragraph': 'Paragraph'
'variableConfig.placeholder': 'Placeholder'
'variableConfig.placeholderPlaceholder': 'Enter text to display when the field is empty'
'variableConfig.required': 'Required'
'variableConfig.select': 'Select'
'variableConfig.selectDefaultValue': 'Select default value'
'variableConfig.showAllSettings': 'Show All Settings'
'variableConfig.single-file': 'Single File'
'variableConfig.startChecked': 'Start checked'
'variableConfig.startSelectedOption': 'Start selected option'
'variableConfig.string': 'Short Text'
'variableConfig.text-input': 'Short Text'
'variableConfig.tooltips': 'Tooltips'
'variableConfig.unit': 'Unit'
'variableConfig.unitPlaceholder': 'Display units after numbers, e.g. tokens'
'variableConfig.uploadFileTypes': 'Upload File Types'
'variableConfig.uploadMethod': 'Upload Method'
'variableConfig.varName': 'Variable Name'
variableTip: 'Users fill variables in a form, automatically replacing variables in the prompt.'
variableTitle: 'Variables'
'voice.defaultDisplay': 'Default Voice'
'voice.settings': 'Settings'
'voice.voiceSettings.autoPlay': 'Auto Play'
'voice.voiceSettings.autoPlayDisabled': 'Off'
'voice.voiceSettings.autoPlayEnabled': 'On'
'voice.voiceSettings.language': 'Language'
'voice.voiceSettings.resolutionTooltip': 'Text-to-speech voice support language。'
'voice.voiceSettings.title': 'Voice Settings'
'voice.voiceSettings.voice': 'Voice'
'warningMessage.timeoutExceeded': 'Results are not displayed due to timeout. Please refer to the logs to gather complete results.'
}
appGeneration: {
'codegen.description': 'The Code Generator uses configured models to generate high-quality code based on your instructions. Please provide clear and detailed instructions.'
'codegen.generate': 'Generate'
'codegen.instruction': 'Instructions'
'codegen.loading': 'Generating code...'
'codegen.overwriteConfirmMessage': 'This action will overwrite the existing code. Do you want to continue?'
'codegen.overwriteConfirmTitle': 'Overwrite existing code?'
'codegen.title': 'Code Generator'
'generate.apply': 'Apply'
'generate.codeGenInstructionPlaceHolderLine': 'The more detailed the feedback, such as the data types of input and output as well as how variables are processed, the more accurate the code generation will be.'
'generate.description': 'The Prompt Generator uses the configured model to optimize prompts for higher quality and better structure. Please write clear and detailed instructions.'
'generate.dismiss': 'Dismiss'
'generate.generate': 'Generate'
'generate.idealOutput': 'Ideal Output'
'generate.idealOutputPlaceholder': 'Describe your ideal response format, length, tone, and content requirements...'
'generate.insertContext': 'insert context'
'generate.instruction': 'Instructions'
'generate.instructionPlaceHolderLine1': 'Make the output more concise, retaining the core points.'
'generate.instructionPlaceHolderLine2': 'The output format is incorrect, please strictly follow the JSON format.'
'generate.instructionPlaceHolderLine3': 'The tone is too harsh, please make it more friendly.'
'generate.instructionPlaceHolderTitle': 'Describe how you would like to improve this Prompt. For example:'
'generate.latest': 'Latest'
'generate.loading': 'Orchestrating the application for you...'
'generate.newNoDataLine1': 'Write a instruction in the left column, and click Generate to see response. '
'generate.optimizationNote': 'Optimization Note'
'generate.optimizePromptTooltip': 'Optimize in Prompt Generator'
'generate.optional': 'Optional'
'generate.overwriteMessage': 'Applying this prompt will override existing configuration.'
'generate.overwriteTitle': 'Override existing configuration?'
'generate.press': 'Press'
'generate.resTitle': 'Generated Prompt'
'generate.template.GitGud.instruction': 'Generate appropriate Git commands based on user described version control actions'
'generate.template.GitGud.name': 'Git gud'
'generate.template.SQLSorcerer.instruction': 'Transform everyday language into SQL queries'
'generate.template.SQLSorcerer.name': 'SQL sorcerer'
'generate.template.excelFormulaExpert.instruction': 'A chatbot that can help novice users understand, use and create Excel formulas based on user instructions'
'generate.template.excelFormulaExpert.name': 'Excel formula expert'
'generate.template.meetingTakeaways.instruction': 'Distill meetings into concise summaries including discussion topics, key takeaways, and action items'
'generate.template.meetingTakeaways.name': 'Meeting takeaways'
'generate.template.professionalAnalyst.instruction': 'Extract insights, identify risk and distill key information from long reports into single memo'
'generate.template.professionalAnalyst.name': 'Professional analyst'
'generate.template.pythonDebugger.instruction': 'A bot that can generate and debug your code based on your instruction'
'generate.template.pythonDebugger.name': 'Python debugger'
'generate.template.translation.instruction': 'A translator that can translate multiple languages'
'generate.template.translation.name': 'Translation'
'generate.template.travelPlanning.instruction': 'The Travel Planning Assistant is an intelligent tool designed to help users effortlessly plan their trips'
'generate.template.travelPlanning.name': 'Travel planning'
'generate.template.writingsPolisher.instruction': 'Use advanced copyediting techniques to improve your writings'
'generate.template.writingsPolisher.name': 'Writing polisher'
'generate.title': 'Prompt Generator'
'generate.to': 'to '
'generate.tryIt': 'Try it'
'generate.version': 'Version'
'generate.versions': 'Versions'
}
appLog: {
'agentLogDetail.agentMode': 'Agent Mode'
'agentLogDetail.finalProcessing': 'Final Processing'
'agentLogDetail.iteration': 'Iteration'
'agentLogDetail.iterations': 'Iterations'
'agentLogDetail.toolUsed': 'Tool Used'
'archives.action.downloadReady': 'Archive download is ready.'
'archives.action.prepareDownload': 'Prepare download'
'archives.action.prepareFailed': 'Failed to prepare archive download.'
'archives.action.prepareStarted': 'Archive download is being prepared.'
'archives.action.preparing': 'Preparing'
'archives.delete.confirm': 'Permanently delete'
'archives.delete.deleting': 'Deleting'
'archives.delete.description': 'This will permanently delete archived workflow logs and download files for all apps in this month. You will no longer be able to download or restore them. Download a backup first.'
'archives.delete.failed': 'Deletion is incomplete. Retry to delete the remaining archived data.'
'archives.delete.requestFailed': 'Could not start deletion. Please try again.'
'archives.delete.retry': 'Retry deletion'
'archives.delete.title': 'Delete archived logs for {{month}}?'
'archives.description': 'Download monthly CSV exports of archived workflow run logs across this workspace.'
'archives.downloadHint.failed': 'Preparing this archive failed. Retry to start a new download task.'
'archives.downloadHint.failedWithReason': 'Preparing this archive failed: {{reason}}'
'archives.downloadHint.prepare': 'Starts a background task to prepare this CSV export. You can leave this page after it starts.'
'archives.downloadHint.preparing': 'The CSV export is being prepared in the background. You can leave this page and come back later.'
'archives.downloadHint.ready': 'This CSV export is ready to download.'
'archives.empty.description': 'Archived workflow run logs will appear here after the retention job finishes.'
'archives.empty.title': 'No archived logs'
'archives.error.description': 'Refresh the page or try again later.'
'archives.error.title': 'Could not load archived logs'
'archives.notice.action': 'Open archived logs'
'archives.notice.description': 'Some logs in this time range may have been archived.'
'archives.summary.latest': 'Latest archive'
'archives.summary.months': 'Archived months'
'archives.summary.runs': 'Workflow runs'
'archives.summary.size': 'Stored size'
'archives.table.action': 'Action'
'archives.table.month': 'Month'
'archives.table.runs': 'Runs'
'archives.table.size': 'Size'
'archives.title': 'Archived logs'
'archives.upgradeTip.description': 'Upgrade your plan to keep workflow run logs from being deleted going forward. Logs that have already been deleted cannot be recovered.'
'archives.upgradeTip.title': 'Upgrade to retain future workflow logs'
dateTimeFormat: 'MM/DD/YYYY hh:mm:ss A'
description: 'The logs record the running status of the application, including user inputs and AI replies.'
'detail.annotationTip': 'Improvements Marked by {{user}}'
'detail.conversationId': 'Conversation ID'
'detail.loading': 'loading'
'detail.modelParams': 'Model parameters'
'detail.operation.dislike': 'dislike'
'detail.operation.like': 'like'
'detail.second': 's'
'detail.time': 'Time'
'detail.timeConsuming': ''
'detail.tokenCost': 'Token spent'
'detail.uploadImages': 'Uploaded Images'
'detail.variables': 'Variables'
'filter.annotation.all': 'All'
'filter.annotation.annotated': 'Annotated Improvements ({{count}} items)'
'filter.annotation.not_annotated': 'Not Annotated'
'filter.period.allTime': 'All time'
'filter.period.custom': 'Custom'
'filter.period.last12months': 'Last 12 months'
'filter.period.last30days': 'Last 30 Days'
'filter.period.last3months': 'Last 3 months'
'filter.period.last4weeks': 'Last 4 weeks'
'filter.period.last7days': 'Last 7 Days'
'filter.period.monthToDate': 'Month to date'
'filter.period.quarterToDate': 'Quarter to date'
'filter.period.today': 'Today'
'filter.period.yearToDate': 'Year to date'
'monitoring.description': 'Monitoring records the running status of the application, including performance, user activity, and costs.'
'retention.upgradeTip.description': 'Upgrade to retain all logs generated after upgrading with no time limit; previously expired logs can’t be recovered.'
'runDetail.fileListDetail': 'Detail'
'runDetail.fileListLabel': 'File Details'
'runDetail.testWithParams': 'Test With Params'
'runDetail.title': 'Conversation Log'
'runDetail.workflowTitle': 'Log Detail'
'status.all': 'All'
'status.failed': 'Failure'
'status.partial-succeeded': 'Partial Success'
'status.paused': 'Paused'
'status.running': 'Running'
'status.scheduled': 'Scheduled'
'status.stopped': 'Stopped'
'status.succeeded': 'Success'
'table.empty.element.content': 'Observe and annotate interactions between end-users and AI applications here to continuously improve AI accuracy. You can try <shareLink>sharing</shareLink> or <testLink>testing</testLink> the Web App yourself, then return to this page.'
'table.empty.element.title': 'Is anyone there?'
'table.empty.noChat': 'No conversation yet'
'table.empty.noOutput': 'No output'
'table.header.adminRate': 'Op. Rate'
'table.header.endUser': 'End User or Account'
'table.header.input': 'Input'
'table.header.messageCount': 'Message Count'
'table.header.output': 'Output'
'table.header.runtime': 'RUN TIME'
'table.header.startTime': 'START TIME'
'table.header.status': 'STATUS'
'table.header.summary': 'Title'
'table.header.time': 'Created time'
'table.header.tokens': 'TOKENS'
'table.header.triggered_from': 'TRIGGER BY'
'table.header.updatedTime': 'Updated time'
'table.header.user': 'END USER OR ACCOUNT'
'table.header.userRate': 'User Rate'
'table.unread': 'Unread'
title: 'Logs'
'triggerBy.appRun': 'WebApp'
'triggerBy.debugging': 'Debugging'
'triggerBy.plugin': 'Integration'
'triggerBy.ragPipelineDebugging': 'RAG Debugging'
'triggerBy.ragPipelineRun': 'RAG Pipeline'
'triggerBy.schedule': 'Schedule'
'triggerBy.webhook': 'Webhook'
workflowSubtitle: 'The log recorded the operation of Automate.'
workflowTitle: 'Workflow Logs'
}
appOverview: {
'analysis.activeUsers.explanation': 'Unique users engaging in Q&A with AI; prompt engineering/debugging excluded.'
'analysis.activeUsers.title': 'Active Users'
'analysis.avgResponseTime.explanation': 'Time (ms) for AI to process/respond; for text-based apps.'
'analysis.avgResponseTime.title': 'Avg. Response Time'
'analysis.avgSessionInteractions.explanation': 'Continuous user-AI communication count; for conversation-based apps.'
'analysis.avgSessionInteractions.title': 'Avg. Session Interactions'
'analysis.avgUserInteractions.explanation': 'Reflects the daily usage frequency of users. This metric reflects user stickiness.'
'analysis.avgUserInteractions.title': 'Avg. User Interactions'
'analysis.ms': 'ms'
'analysis.tokenPS': 'Token/s'
'analysis.tokenUsage.consumed': 'Consumed'
'analysis.tokenUsage.explanation': 'Reflects the daily token usage of the language model for the application, useful for cost control purposes.'
'analysis.tokenUsage.title': 'Token Usage'
'analysis.totalConversations.explanation': 'Daily AI conversations count; prompt engineering/debugging excluded.'
'analysis.totalConversations.title': 'Total Conversations'
'analysis.totalMessages.explanation': 'Daily AI interactions count.'
'analysis.totalMessages.title': 'Total Messages'
'analysis.tps.explanation': 'Measure the performance of the LLM. Count the Tokens output speed of LLM from the beginning of the request to the completion of the output.'
'analysis.tps.title': 'Token Output Speed'
'analysis.userSatisfactionRate.explanation': 'The number of likes per 1,000 messages. This indicates the proportion of answers that users are highly satisfied with.'
'analysis.userSatisfactionRate.title': 'User Satisfaction Rate'
'overview.apiInfo.accessibleAddress': 'API Endpoint'
'overview.apiInfo.doc': 'API Reference'
'overview.apiInfo.title': 'Backend Service API'
'overview.appInfo.customize.entry': 'Custom Frontend'
'overview.appInfo.customize.explanation': 'You can customize the frontend of the Web App to fit your scenario and style needs.'
'overview.appInfo.customize.title': 'Custom Frontend'
'overview.appInfo.customize.way': 'way'
'overview.appInfo.customize.way1.name': 'Fork the client code, modify it and deploy to Vercel (recommended)'
'overview.appInfo.customize.way1.step1': 'Fork the client code and modify it'
'overview.appInfo.customize.way1.step1Operation': 'Dify-WebClient'
'overview.appInfo.customize.way1.step1Tip': 'Click here to fork the source code into your GitHub account and modify the code'
'overview.appInfo.customize.way1.step2': 'Deploy to Vercel'
'overview.appInfo.customize.way1.step2Operation': 'Import repository'
'overview.appInfo.customize.way1.step2Tip': 'Click here to import the repository into Vercel and deploy'
'overview.appInfo.customize.way1.step3': 'Configure environment variables'
'overview.appInfo.customize.way1.step3Tip': 'Add the following environment variables in Vercel'
'overview.appInfo.customize.way2.name': 'Write client-side code to call the API and deploy it to a server'
'overview.appInfo.customize.way2.operation': 'Documentation'
'overview.appInfo.embedded.chromePlugin': 'Install Dify Chatbot Chrome Extension'
'overview.appInfo.embedded.copied': 'Copied'
'overview.appInfo.embedded.copy': 'Copy'
'overview.appInfo.embedded.explanation': 'Choose the way to embed chat app to your website'
'overview.appInfo.embedded.hiddenInputs.description': "Enter values for the hidden fields. The values are added to the iframe URL or the script's inputs object."
'overview.appInfo.embedded.hiddenInputs.title': 'Pre-Fill Hidden Fields'
'overview.appInfo.embedded.iframe': 'To add the chat app any where on your website, add this iframe to your html code.'
'overview.appInfo.embedded.scripts': 'To add a chat app to the bottom right of your website add this code to your html.'
'overview.appInfo.embedded.title': 'Embed on website'
'overview.appInfo.launch': 'Launch'
'overview.appInfo.preview': 'Preview'
'overview.appInfo.qrcode.download': 'Download QR Code'
'overview.appInfo.qrcode.title': 'Link QR Code'
'overview.appInfo.regenerate': 'Regenerate'
'overview.appInfo.regenerateNotice': 'Do you want to regenerate the public URL? The current URL will stop working immediately.'
'overview.appInfo.settings.chatColorTheme': 'Chat color theme'
'overview.appInfo.settings.chatColorThemeDesc': 'Set the color theme of the chatbot'
'overview.appInfo.settings.chatColorThemeInverted': 'Inverted'
'overview.appInfo.settings.invalidHexMessage': 'Invalid hex value'
'overview.appInfo.settings.invalidPrivacyPolicy': 'Invalid privacy policy link. Please use a valid link that starts with http or https'
'overview.appInfo.settings.language': 'Language'
'overview.appInfo.settings.modalTip': 'Client-side web app settings. '
'overview.appInfo.settings.more.copyRightPlaceholder': 'Enter the name of the author or organization'
'overview.appInfo.settings.more.copyright': 'Copyright'
'overview.appInfo.settings.more.copyrightTip': 'Display copyright information in the web app'
'overview.appInfo.settings.more.copyrightTooltip': 'Please upgrade to Professional plan or above'
'overview.appInfo.settings.more.customDisclaimer': 'Custom Disclaimer'
'overview.appInfo.settings.more.customDisclaimerPlaceholder': 'Enter the custom disclaimer text'
'overview.appInfo.settings.more.customDisclaimerTip': 'Custom disclaimer text will be displayed on the client side, providing additional information about the application'
'overview.appInfo.settings.more.inputPlaceholder': 'Input placeholder'
'overview.appInfo.settings.more.inputPlaceholderPlaceholder': 'Talk to bot'
'overview.appInfo.settings.more.inputPlaceholderTip': 'Customize your own placeholder text for the chat input box. Leave empty to use the default.'
'overview.appInfo.settings.more.inputPlaceholderTooltip': 'Upgrade to customize the placeholder'
'overview.appInfo.settings.more.privacyPolicy': 'Privacy Policy'
'overview.appInfo.settings.more.privacyPolicyPlaceholder': 'Enter the privacy policy link'
'overview.appInfo.settings.more.privacyPolicyTip': "Helps visitors understand the data the application collects, see Dify's <privacyPolicyLink>Privacy Policy</privacyPolicyLink>."
'overview.appInfo.settings.multiEnvironmentNotice': 'Web app settings apply to all environments.'
'overview.appInfo.settings.title': 'Branding'
'overview.appInfo.settings.webDesc': 'Web App Description'
'overview.appInfo.settings.webDescPlaceholder': 'Enter the description of the web app'
'overview.appInfo.settings.webDescTip': 'This text will be displayed on the client side, providing basic guidance on how to use the application'
'overview.appInfo.settings.webName': 'Web App Name'
'overview.appInfo.settings.workflow.showDesc': 'Show or hide workflow details in web app'
'overview.appInfo.settings.workflow.subTitle': 'Workflow Details'
'overview.appInfo.title': 'Web App'
'overview.appInfo.workflowLaunchHiddenInputs.description': 'Enter values for the hidden fields, then click <bold>Launch</bold> to open the WebApp with the values.'
'overview.appInfo.workflowLaunchHiddenInputs.title': 'Pre-Fill Hidden Fields'
'overview.status.disable': 'Disabled'
'overview.triggerInfo.learnAboutTriggers': 'Learn more about triggers'
'overview.triggerInfo.triggerStatusDescription': 'Triggers appear here after you publish.'
}
billing: {
'annotatedResponse.fullTipLine1': 'Upgrade your plan to'
'annotatedResponse.fullTipLine2': 'annotate more conversations.'
'annotatedResponse.quotaTitle': 'Annotation Reply Quota'
'apps.contactUs': 'Contact us'
'apps.fullTip1': 'Upgrade to create more apps'
'apps.fullTip1des': "You've reached the limit of build apps on this plan"
'apps.fullTip2': 'Plan limit reached'
'apps.fullTip2des': 'It is recommended to clean up inactive applications to free up usage, or contact us.'
buyPermissionDeniedTip: 'Please contact your enterprise administrator to subscribe'
'errors.operationFailed': "We couldn't complete this request. Please try again later. If the problem persists, contact support."
'errors.requestInProgress': 'Your previous request is still being processed. Please try again in a moment.'
'errors.unavailable': 'This service is temporarily unavailable. Please try again later.'
'plans.community.btnText': 'Get Started'
'plans.community.description': 'For open-source enthusiasts, individual developers, and non-commercial projects'
'plans.community.features': [
'All Core Features Released Under the Public Repository',
'Single Workspace',
'Complies with Dify Open Source License',
]
'plans.community.includesTitle': 'Free Features:'
'plans.community.name': 'Community'
'plans.community.price': 'Free'
'plans.community.priceTip': ''
'plans.enterprise.btnText': 'Contact Sales'
'plans.enterprise.description': 'For enterprise requiring organization-grade security, compliance, scalability, control and custom solutions'
'plans.enterprise.features': [
'Enterprise-grade Scalable Deployment Solutions',
'Commercial License Authorization',
'Exclusive Enterprise Features',
'Multiple Workspaces & Enterprise Management',
'SSO',
'Negotiated SLAs by Dify Partners',
'Advanced Security & Controls',
'Updates and Maintenance by Dify Officially',
'Professional Technical Support',
]
'plans.enterprise.includesTitle': 'Everything from <highlight>Premium</highlight>, plus:'
'plans.enterprise.name': 'Enterprise'
'plans.enterprise.price': 'Custom'
'plans.enterprise.priceTip': 'Annual Billing Only'
'plans.premium.btnText': 'Get Premium on'
'plans.premium.comingSoon': 'Microsoft Azure & Google Cloud Support Coming Soon'
'plans.premium.description': 'For Mid-sized organizations needing deployment flexibility and enhanced support'
'plans.premium.features': [
'Self-managed Reliability by Various Cloud Providers',
'Single Workspace',
'WebApp Logo & Branding Customization',
'Priority Email & Chat Support',
]
'plans.premium.includesTitle': 'Everything from Community, plus:'
'plans.premium.marketplaceName': 'AWS Marketplace'
'plans.premium.name': 'Premium'
'plans.premium.price': 'Scalable'
'plans.premium.priceTip': 'Based on Cloud Marketplace'
'plans.professional.description': 'For independent developers & small teams ready to build production AI applications.'
'plans.professional.for': 'For Independent Developers/Small Teams'
'plans.professional.name': 'Professional'
'plans.sandbox.description': 'Try core features for free.'
'plans.sandbox.for': 'Free Trial of Core Capabilities'
'plans.sandbox.name': 'Sandbox'
'plans.team.description': 'For medium-sized teams requiring collaboration and higher throughput.'
'plans.team.for': 'For Medium-sized Teams'
'plans.team.name': 'Team'
'plansCommon.annotatedResponse.title': '{{count,number}} Annotation Quota Limits'
'plansCommon.annotatedResponse.tooltip': 'Manual editing and annotation of responses provides customizable high-quality question-answering abilities for apps. (Applicable only in Chat apps)'
'plansCommon.annualBilling': 'Bill Annually Save {{percent}}%'
'plansCommon.apiRateLimit': 'API Rate Limit'
'plansCommon.apiRateLimitTooltip': 'API Rate Limit applies to all requests made through the Dify API, including text generation, chat conversations, workflow executions, and document processing.'
'plansCommon.apiRateLimitUnit': '{{count,number}}'
'plansCommon.buildApps': '{{count,number}} Apps'
'plansCommon.cloud': 'Cloud Service'
'plansCommon.comparePlanAndFeatures': 'Compare plans & features'
'plansCommon.currentPlan': 'Current Plan'
'plansCommon.days': 'Days'
'plansCommon.discountedAnnualPrice': 'Discounted annual price: '
'plansCommon.documentProcessingPriority': ' Document Processing'
'plansCommon.documentProcessingPriorityTip': 'For higher document processing priority, please upgrade your plan.'
'plansCommon.documentProcessingPriorityUpgrade': 'Process more data with higher accuracy at faster speeds.'
'plansCommon.documents': '{{count,number}} Knowledge Documents'
'plansCommon.documentsRequestQuota': '{{count,number}} Knowledge Request/min'
'plansCommon.documentsRequestQuotaTooltip': 'Specifies the total number of actions a workspace can perform per minute within the knowledge base, including dataset creation, deletion, updates, document uploads, modifications, archiving, and knowledge base queries. This metric is used to evaluate the performance of knowledge base requests. For example, if a Sandbox user performs 10 consecutive hit tests within one minute, their workspace will be temporarily restricted from performing the following actions for the next minute: dataset creation, deletion, updates, and document uploads or modifications. '
'plansCommon.documentsTooltip': 'Quota on the number of documents imported from the Knowledge Data Source.'
'plansCommon.free': 'Free'
'plansCommon.getStarted': 'Get Started'
'plansCommon.logsHistory': '{{days}} Log history'
'plansCommon.member': 'Member'
'plansCommon.memberAfter': 'Member'
'plansCommon.messageRequest.title': '{{count,number}} message credits'
'plansCommon.messageRequest.titlePerMonth': '{{count,number}} message credits/month'
'plansCommon.messageRequest.tooltip': "Message credits are provided to help you easily try out different models from OpenAI, Anthropic, Gemini, xAI, DeepSeek and Tongyi in Dify. Credits are consumed based on the model type. Once they're used up, you can switch to your own API key."
'plansCommon.modelProviders': 'Support OpenAI/Anthropic/Llama2/Azure OpenAI/Hugging Face/Replicate'
'plansCommon.month': 'month'
'plansCommon.mostPopular': 'Popular'
'plansCommon.originalAnnualPrice': 'Original annual price: '
'plansCommon.priceTip': 'per workspace/'
'plansCommon.priority.priority': 'Priority'
'plansCommon.priority.standard': 'Standard'
'plansCommon.priority.top-priority': 'Top Priority'
'plansCommon.receiptInfo': 'Only team owner and team admin can subscribe and view billing information'
'plansCommon.self': 'Self-Hosted'
'plansCommon.startBuilding': 'Start Building'
'plansCommon.startForFree': 'Start for Free'
'plansCommon.startNodes.limited': 'Up to {{count}} Triggers/workflow'
'plansCommon.startNodes.unlimited': 'Unlimited Triggers/workflow'
'plansCommon.taxTip': 'All subscription prices (monthly/annual) exclude applicable taxes (e.g., VAT, sales tax).'
'plansCommon.teamMember': '{{count,number}} Team Member' | '{{count,number}} Team Members'
'plansCommon.teamWorkspace': '{{count,number}} Team Workspace'
'plansCommon.title.description': "Select the plan that best fits your team's needs."
'plansCommon.title.plans': 'plans'
'plansCommon.triggerEvents.professional': '{{count,number}} Trigger Events/month'
'plansCommon.triggerEvents.sandbox': '{{count,number}} Trigger Events'
'plansCommon.triggerEvents.tooltip': 'The number of events that automatically start workflows through Integration, Schedule, or Webhook triggers.'
'plansCommon.triggerEvents.unlimited': 'Unlimited Trigger Events'
'plansCommon.unavailable': 'Unavailable'
'plansCommon.unlimited': 'Unlimited'
'plansCommon.unlimitedApiRate': 'No Dify API Rate Limit'
'plansCommon.vectorSpace': '{{size}} Knowledge Data Storage'
'plansCommon.vectorSpaceTooltip': 'Documents with the High Quality indexing mode will consume Knowledge Data Storage resources. When Knowledge Data Storage reaches the limit, new documents will not be uploaded.'
'plansCommon.workflowExecution.faster': 'Faster Workflow Execution'
'plansCommon.workflowExecution.priority': 'Priority Workflow Execution'
'plansCommon.workflowExecution.standard': 'Standard Workflow Execution'
'plansCommon.workflowExecution.tooltip': 'Workflow execution queue priority and speed.'
'plansCommon.year': 'year'
'triggerLimitModal.description': "You've reached the limit of workflow event triggers for this plan."
'triggerLimitModal.dismiss': 'Dismiss'
'triggerLimitModal.title': 'Upgrade to unlock more trigger events'
'triggerLimitModal.upgrade': 'Upgrade'
'triggerLimitModal.usageTitle': 'TRIGGER EVENTS'
'upgrade.addChunks.description': 'You’ve reached the limit of adding chunks for this plan.'
'upgrade.addChunks.title': 'Upgrade to continue adding chunks'
'upgrade.agentRestore.description': 'Agent app version restoration is not available on your current plan.'
'upgrade.agentRestore.title': 'Upgrade to restore agent app versions'
'upgrade.uploadMultipleFiles.description': 'Upload multiple documents at once and increase the maximum size per file to 50 MB.'
'upgrade.uploadMultipleFiles.title': 'Upgrade to unlock batch uploads and larger files'
'upgrade.uploadMultiplePages.description': 'You’ve reached the upload limit — only one document can be selected and uploaded at a time on your current plan.'
'upgrade.uploadMultiplePages.title': 'Upgrade to upload multiple documents at once'
'upgrade.workflowRestore.description': 'Workflow version restoration is not available on your current plan.'
'upgrade.workflowRestore.title': 'Upgrade to restore workflow versions'
'upgradeBtn.encourage': 'Upgrade Now'
'upgradeBtn.encourageShort': 'Upgrade'
'upgradeBtn.plain': 'View Plan'
'usagePage.annotationQuota': 'Annotation Quota'
'usagePage.buildApps': 'Build Apps'
'usagePage.documentsUploadQuota': 'Documents Upload Quota'
'usagePage.resetsIn': 'Resets in {{count,number}} days'
'usagePage.storageThresholdTooltip': 'Detailed usage is shown once storage exceeds 50 MB.'
'usagePage.teamMembers': 'Team Members'
'usagePage.triggerEvents': 'Trigger Events'
'usagePage.vectorSpace': 'Knowledge Data Storage'
'usagePage.vectorSpaceTooltip': 'Documents with the High Quality indexing mode will consume Knowledge Data Storage resources. When Knowledge Data Storage reaches the limit, new documents will not be uploaded.'
'vectorSpace.fullSolution': 'Upgrade your plan to get more space.'
'vectorSpace.fullTip': 'Vector Space is full.'
viewBillingAction: 'Manage'
viewBillingDescription: 'Manage payment methods, invoices, and subscription changes'
viewBillingTitle: 'Billing and Subscriptions'
}
common: {
'about.changeLog': 'Changelog'
'about.latestAvailable': 'Dify {{version}} is the latest version available.'
'about.nowAvailable': 'Dify {{version}} is now available.'
'about.updateNow': 'Update now'
'about.version': 'version {{version}}'
'actionMsg.copySuccessfully': 'Copied successfully'
'actionMsg.downloadUnsuccessfully': 'Download failed. Please try again later.'
'actionMsg.generatedSuccessfully': 'Generated successfully'
'actionMsg.generatedUnsuccessfully': 'Generated unsuccessfully'
'actionMsg.modifiedSuccessfully': 'Modified successfully'
'actionMsg.modifiedUnsuccessfully': 'Modified unsuccessfully'
'actionMsg.payCancelled': 'Payment cancelled'
'actionMsg.paySucceeded': 'Payment succeeded'
'agentStrategyPage.description': 'Define how your AI agent reasons and makes decisions — including how it selects tools, handles results, and solves problems autonomously.'
'api.actionFailed': 'Action failed'
'api.actionSuccess': 'Action succeeded'
'api.remove': 'Removed'
'api.saved': 'Saved'
'api.success': 'Success'
'apiBasedExtension.add': 'Add Custom Endpoint'
'apiBasedExtension.link': 'Learn how to develop your own Custom Endpoint'
'apiBasedExtension.modal.apiEndpoint.placeholder': 'Please enter the API endpoint'
'apiBasedExtension.modal.apiEndpoint.title': 'API Endpoint'
'apiBasedExtension.modal.apiKey.lengthError': 'API-key length cannot be less than 5 characters'
'apiBasedExtension.modal.apiKey.placeholder': 'Please enter the API-key'
'apiBasedExtension.modal.apiKey.title': 'API-key'
'apiBasedExtension.modal.editTitle': 'Edit Custom Endpoint'
'apiBasedExtension.modal.name.placeholder': 'Please enter the name'
'apiBasedExtension.modal.name.title': 'Name'
'apiBasedExtension.modal.title': 'Add Custom Endpoint'
'apiBasedExtension.selector.manage': 'Manage Custom Endpoint'
'apiBasedExtension.selector.placeholder': 'Please select Custom Endpoint'
'apiBasedExtension.selector.title': 'Custom Endpoint'
'apiBasedExtension.title': "Custom Endpoints provide centralized API management, simplifying configuration for easy use across Dify's applications."
'apiBasedExtension.type': 'Type'
'apiBasedExtensionPage.description': "Extend Dify's module capabilities via API — add custom content moderation or external data tools to your apps."
'appMenus.accessPoint': 'Access Point'
'appMenus.annotations': 'Annotations'
'appMenus.apiAccess': 'API Access'
'appMenus.apiAccessTip': 'This knowledge base is accessible via the Service API'
'appMenus.deploy': 'Deploy'
'appMenus.logs': 'Logs'
'appMenus.overview': 'Monitoring'
'appMenus.promptEng': 'Orchestrate'
'avatar.deleteDescription': 'Are you sure you want to remove your profile picture? Your account will use the default initial avatar.'
'avatar.deleteTitle': 'Remove Avatar'
'avatar.editAction': 'Edit Avatar'
'chat.citation.characters': 'Characters:'
'chat.citation.hitCount': 'Retrieval count:'
'chat.citation.hitScore': 'Retrieval Score:'
'chat.citation.linkToDataset': 'Link to Knowledge'
'chat.citation.title': 'CITATIONS'
'chat.citation.vectorHash': 'Vector hash:'
'chat.conversationName': 'Conversation name'
'chat.conversationNameCanNotEmpty': 'Conversation name required'
'chat.conversationNamePlaceholder': 'Please input conversation name'
'chat.inputDisabledPlaceholder': 'Preview Only'
'chat.inputPlaceholder': 'Talk to {{botName}}'
'chat.renameConversation': 'Rename Conversation'
'chat.thinking': 'Thinking...'
'chat.thought': 'Thought'
'compliance.documentNotFound': 'This document is not available right now. Please try again later or contact support.'
'compliance.downloadForbidden': 'Only the workspace owner can download this document, and only on a plan that includes it. Ask your workspace owner to download it.'
'compliance.gdpr': 'GDPR DPA'
'compliance.iso27001': 'ISO 27001:2022 Certification'
'compliance.professionalUpgradeTooltip': 'Only available with a Team plan or above.'
'compliance.rateLimit': 'Too many downloads. Please try again later.'
'compliance.sandboxUpgradeTooltip': 'Only available with a Professional or Team plan.'
'compliance.soc2Type1': 'SOC 2 Type I Report'
'compliance.soc2Type2': 'SOC 2 Type II Report'
'dataSource.configure': 'Configure'
'dataSource.notion.changeAuthorizedPages': 'Change authorized pages'
'dataSource.notion.connected': 'Connected'
'dataSource.notion.selector.configure': 'Configure Notion'
'dataSource.notion.selector.docs': 'Notion docs'
'dataSource.notion.selector.headerTitle': 'Choose Notion pages'
'dataSource.notion.selector.noSearchResult': 'No search results'
'dataSource.notion.selector.preview': 'PREVIEW'
'dataSource.notion.selector.searchPages': 'Search pages...'
'dataSourcePage.description': 'Connect external data sources to use in your Knowledge base or Knowledge Pipeline — pull in content from Google Drive, Notion, GitHub, and more.'
'dataSourcePage.installFirst': 'Please install a data source first.'
'dataSourcePage.notSetUpTitle': '<highlight>Data Source</highlight> not set up'
'datasetMenus.documents': 'Documents'
'datasetMenus.emptyTip': 'This Knowledge has not been integrated within any application. Please refer to the document for guidance.'
'datasetMenus.hitTesting': 'Retrieval Testing'
'datasetMenus.pipeline': 'Pipeline'
'datasetMenus.relatedApp': 'linked apps'
'datasetMenus.settings': 'Settings'
'datasetMenus.viewDoc': 'View documentation'
'dynamicSelect.error': 'Loading options failed'
'dynamicSelect.loading': 'Loading options...'
'dynamicSelect.noData': 'No options available'
'dynamicSelect.selected': '{{count}} selected'
editedAt: 'Edited at'
'environment.development': 'DEVELOPMENT'
'environment.testing': 'TESTING'
error: 'Error'
'errorBoundary.componentStack': 'Component Stack:'
'errorBoundary.details': 'Error Details (Development Only)'
'errorBoundary.errorCount': 'This error has occurred {{count}} times'
'errorBoundary.message': 'An unexpected error occurred while rendering this component.'
'errorBoundary.reloadPage': 'Reload Page'
'errorBoundary.title': 'Something went wrong'
'errorBoundary.tryAgain': 'Try Again'
'errorMsg.fieldRequired': '{{field}} is required'
'errorMsg.urlError': 'url should start with http:// or https://'
'extensionPage.description': 'Integrate external services into your apps using HTTP Webhooks.'
'feedback.content': 'Feedback Content'
'feedback.placeholder': 'Please describe what went wrong or how we can improve...'
'feedback.subtitle': 'Please tell us what went wrong with this response'
'feedback.title': 'Provide Feedback'
'fileUploader.fileExtensionBlocked': 'This file type is blocked for security reasons'
'fileUploader.fileExtensionNotSupport': 'File extension not supported'
'fileUploader.pasteFileLink': 'Paste file link'
'fileUploader.pasteFileLinkInputPlaceholder': 'Enter URL...'
'fileUploader.pasteFileLinkInvalid': 'Invalid file link'
'fileUploader.uploadDisabled': 'File upload is disabled'
'fileUploader.uploadFromComputer': 'Local upload'
'fileUploader.uploadFromComputerLimit': 'Upload {{type}} cannot exceed {{size}}'
'fileUploader.uploadFromComputerReadError': 'File reading failed, please try again.'
'fileUploader.uploadFromComputerUploadError': 'File upload failed, please upload again.'
'imageGallery.previewImage': 'Preview image {{index}} of {{total}}'
'imageInput.browse': 'browse'
'imageInput.dropImageHere': 'Drop your image here, or'
'imageInput.supportedFormats': 'Supports PNG, JPG, JPEG, WEBP and GIF'
'imageUploader.imageList': 'Image list'
'imageUploader.imageUpload': 'Image Upload'
'imageUploader.pasteImageLink': 'Paste image link'
'imageUploader.pasteImageLinkInputPlaceholder': 'Paste image link here'
'imageUploader.pasteImageLinkInvalid': 'Invalid image link'
'imageUploader.uploadFromComputer': 'Upload from Computer'
'imageUploader.uploadFromComputerLimit': 'Upload images cannot exceed {{size}} MB'
'imageUploader.uploadFromComputerReadError': 'Image reading failed, please try again.'
'imageUploader.uploadFromComputerUploadError': 'Image upload failed, please upload again.'
'integrations.connect': 'Connect'
'label.optional': '(optional)'
'language.displayLanguage': 'Display Language'
'language.timezone': 'Time Zone'
'license.expiring': 'Expiring in one day'
'license.expiring_plural': 'Expiring in {{count}} days'
'license.unlimited': 'Unlimited'
loading: 'Loading'
'mcpPage.description': 'Connect and manage MCP servers to give your apps access to external tools and services.'
'model.capabilities': 'MultiModal Capabilities'
'model.params.stop_sequencesPlaceholder': 'Enter sequence and press Tab'
'model.tone.Balanced': 'Balanced'
'model.tone.Creative': 'Creative'
'model.tone.Custom': 'Custom'
'model.tone.Precise': 'Precise'
'navigation.primary': 'Main menu'
'navigation.skipToMain': 'Skip to main content'
noData: 'No data'
'operation.add': 'Add'
'operation.added': 'Added'
'operation.audioSourceUnavailable': 'AudioSource is unavailable'
'operation.back': 'Back'
'operation.cancel': 'Cancel'
'operation.change': 'Change'
'operation.clear': 'Clear'
'operation.close': 'Close'
'operation.config': 'Configure'
'operation.confirm': 'Confirm'
'operation.confirmAction': 'Please confirm your action.'
'operation.copied': 'Copied'
'operation.copy': 'Copy'
'operation.copyImage': 'Copy Image'
'operation.create': 'Create'
'operation.deSelectAll': 'Deselect All'
'operation.decreaseValue': 'Decrease value'
'operation.delete': 'Delete'
'operation.deleteConfirmTitle': 'Delete?'
'operation.download': 'Download'
'operation.downloadFailed': 'Download failed. Please try again later.'
'operation.downloadSuccess': 'Download Completed.'
'operation.downloading': 'Downloading'
'operation.duplicate': 'Duplicate'
'operation.edit': 'Edit'
'operation.export': 'Export'
'operation.exporting': 'Exporting'
'operation.fill': 'Autofill'
'operation.format': 'Format'
'operation.imageCopied': 'Image copied'
'operation.imageCopyFailed': 'Could not copy the image. Please download it instead.'
'operation.in': 'in'
'operation.increaseValue': 'Increase value'
'operation.learnMore': 'Learn more'
'operation.log': 'Log'
'operation.more': 'More'
'operation.moreActions': 'More actions'
'operation.moreActionsFor': 'More actions for {{name}}'
'operation.moveDown': 'Move down'
'operation.moveUp': 'Move up'
'operation.noSearchCount': '0 {{content}}'
'operation.noSearchResults': 'No {{content}} were found'
'operation.ok': 'OK'
'operation.openInNewTab': 'Open in new tab'
'operation.params': 'Params'
'operation.pause': 'Pause'
'operation.play': 'Play'
'operation.refresh': 'Restart'
'operation.regenerate': 'Regenerate'
'operation.remove': 'Remove'
'operation.rename': 'Rename'
'operation.reset': 'Reset'
'operation.resetKeywords': 'Reset keywords'
'operation.retry': 'Retry'
'operation.save': 'Save'
'operation.saveAndEnable': 'Save & Enable'
'operation.saveAndRegenerate': 'Save & Regenerate Child Chunks'
'operation.saving': 'Saving...'
'operation.search': 'Search'
'operation.searchCount': 'Find {{count}} {{content}}'
'operation.selectAll': 'Select All'
'operation.selectCount': '{{count}} Selected'
'operation.send': 'Send'
'operation.settings': 'Settings'
'operation.skip': 'Skip'
'operation.submit': 'Submit'
'operation.sure': "I'm sure"
'operation.toggleFullscreen': 'Toggle fullscreen'
'operation.toggleMute': 'Toggle mute'
'operation.view': 'View'
'operation.viewDetails': 'View Details'
'operation.viewMore': 'VIEW MORE'
'operation.zoomIn': 'Zoom In'
'operation.zoomOut': 'Zoom Out'
pageUnavailable: 'Page not available'
'pagination.editPageNumber': '{{page}}/{{totalPages}}: Edit page number'
'pagination.next': 'Next page'
'pagination.pageNumber': 'Page number'
'pagination.perPage': 'Items per page'
'pagination.previous': 'Previous page'
'placeholder.input': 'Please enter'
'placeholder.search': 'Search...'
'placeholder.select': 'Please select'
'promptEditor.context.item.title': 'Context'
'promptEditor.context.modal.add': 'Add Context '
'promptEditor.context.modal.footer': 'You can manage contexts in the Context section below.'
'promptEditor.context.modal.title': '{{num}} Knowledge in Context'
'promptEditor.history.item.title': 'Conversation History'
'promptEditor.history.modal.assistant': 'Hello! How can I assist you today?'
'promptEditor.history.modal.edit': 'Edit Conversation Role Names'
'promptEditor.history.modal.title': 'EXAMPLE'
'promptEditor.history.modal.user': 'Hello'
'promptEditor.placeholder': "Write your prompt word here, enter '{' to insert a variable, enter '/' to insert a prompt content block"
'promptEditor.query.item.title': 'Query'
'promptEditor.requestURL.item.title': 'Request URL'
'promptEditor.variable.modal.add': 'New variable'
'promptEditor.variable.modal.addTool': 'New tool'
'provider.encrypted.back': ' technology.'
'provider.encrypted.front': 'Your API KEY will be encrypted and stored using'
'provider.validating': 'Validating key...'
'resize.editor': 'Resize editor'
'resize.editorHelp': 'Use Up and Down to resize. Hold Shift for larger steps. Home or Enter resets to the minimum height.'
'resize.height': 'Height: {{height}} pixels'
'resize.node': 'Resize node'
'resize.nodeHelp': 'Use arrow keys to resize. Hold Shift for larger steps. Home or Enter shrinks to fit the contents.'
'resize.size': '{{width}} pixels wide, {{height}} pixels high'
'resize.width': 'Width: {{width}} pixels'
'settings.ipPolicies': 'IP Policies'
'settings.ipPoliciesDescription': 'Reusable rules that control which IP addresses or ranges can access your apps'
'settings.ipPoliciesProPlanRequired': 'Applying a policy to an app requires the Pro plan'
'settings.ipPolicyAddCurrentIp': 'Add it'
'settings.ipPolicyAddEntry': 'Add'
'settings.ipPolicyAllowlist': 'Allowlist'
'settings.ipPolicyAllowlistHelp': 'Single addresses (203.0.113.42) or CIDR ranges (10.0.0.0/8). IPv4 and IPv6 are both accepted.'
'settings.ipPolicyColumnIpEntries': 'IP Entries'
'settings.ipPolicyColumnName': 'Name'
'settings.ipPolicyColumnUpdatedAt': 'Updated at'
'settings.ipPolicyColumnUsedBy': 'Used by'
'settings.ipPolicyCreate': 'Create'
'settings.ipPolicyCurrentIp': 'Your current IP is {{ip}}'
'settings.ipPolicyCurrentIpError': 'Unable to check your IP address. Please try again.'
'settings.ipPolicyCurrentIpLoading': 'Checking your IP address…'
'settings.ipPolicyDeleteBoundDescription': 'Apps using this policy will become accessible from any IP address. This can’t be undone.'
'settings.ipPolicyDeleteConfirm': 'Delete “{{name}}”?'
'settings.ipPolicyDeleteDescription': 'This can’t be undone.'
'settings.ipPolicyDialogDescription': 'Specify which IP addresses or ranges can access your apps.'
'settings.ipPolicyEditTitle': 'Edit IP Policy'
'settings.ipPolicyEditUsedBy': 'Changes take effect immediately wherever this policy is applied.'
'settings.ipPolicyEmptyCreate': 'Create an IP policy'
'settings.ipPolicyEmptyDescription': 'A policy is the list of IP addresses allowed in.'
'settings.ipPolicyEmptyTitle': 'No IP policies in this workspace yet'
'settings.ipPolicyEnforcingMany': '{{count}} apps'
'settings.ipPolicyEnforcingNone': '0 apps'
'settings.ipPolicyEnforcingOne': '1 app'
'settings.ipPolicyEntryInvalidIpv6': 'Not a valid IPv6 address'
'settings.ipPolicyEntryLeadingZeros': 'Leading zeros are not allowed'
'settings.ipPolicyEntryMultipleSlashes': 'Only one “/” is allowed'
'settings.ipPolicyEntryOctetRange': 'Each octet must be 0–255'
'settings.ipPolicyEntryPrefixNotNumber': 'Prefix length must be a number'
'settings.ipPolicyEntryPrefixRange': 'Prefix length must be 0–{{max}}'
'settings.ipPolicyEntryUnsupported': 'Only IPv4 / IPv6 addresses and CIDR ranges are supported'
'settings.ipPolicyMore': 'More'
'settings.ipPolicyName': 'Name'
'settings.ipPolicyNamePlaceholder': 'e.g. Internal Network'
'settings.ipPolicyNewTitle': 'New IP Policy'
'settings.ipPolicyRemoveEntry': 'Remove entry'
'settings.ipPolicyUsedBy': 'Still used by {{count}} apps' | 'Still used by {{count}} app'
'settings.ipPolicyUsedByLabel': 'Used by'
'settings.ipPolicyViewDescription': 'Only the workspace owner and admins can edit IP policies.'
'sort.cancelled': 'Sorting {{item}} cancelled.'
'sort.finished': 'Placed {{item}} at position {{position}} of {{count}}.'
'sort.handle': 'Reorder {{item}}'
'sort.instructions': 'Press Space or Enter to start sorting. Use the up and down arrows to move. Press Space or Enter to confirm, or Escape to cancel.'
'sort.item': 'Item {{position}}'
'sort.moved': 'Moved {{item}} to position {{position}} of {{count}}.'
'sort.started': 'Picked up {{item}}, position {{position}} of {{count}}.'
'sorting.ascending': 'Sort ascending'
'sorting.descending': 'Sort descending'
'sorting.sortBy': 'Sort by:'
'svgRenderer.generatingImage': 'Generating the image…'
'swaggerAPIAsToolPage.description': 'Import any API as a tool using OpenAPI/Swagger specs. Configure once and reuse it across your workflows.'
'tag.addNew': 'Add new tag'
'tag.addTag': 'Add tags'
'tag.boundItems': 'Number of items using this tag'
'tag.create': 'Create'
'tag.created': 'Tag created successfully'
'tag.delete': 'Delete tag'
'tag.deleteTip': 'The tag is being used, delete it?'
'tag.failed': 'Tag creation failed'
'tag.manageTags': 'Manage Tags'
'tag.noTag': 'No tags'
'tag.placeholder': 'Tags'
'tag.selectorPlaceholder': 'Type to search or create'
'tag.tags': 'Tags'
'theme.dark': 'Dark'
'theme.label': 'Appearance'
'theme.light': 'Light'
'theme.system': 'System'
'triggerPage.description': 'Convert third-party events into inputs your apps can recognize and act on — automate workflows without manual triggers.'
'unit.char': 'chars'
'userProfile.about': 'About'
'userProfile.compliance': 'Compliance'
'userProfile.contactUs': 'Contact Us'
'userProfile.discord': 'Discord'
'userProfile.emailSupport': 'Email Support'
'userProfile.github': 'GitHub'
'userProfile.helpCenter': 'View Docs'
'userProfile.logout': 'Log out'
'userProfile.roadmap': 'Roadmap'
'userProfile.workspace': 'Workspace'
'voice.language.arTN': 'Tunisian Arabic'
'voice.language.deDE': 'German'
'voice.language.enUS': 'English'
'voice.language.esES': 'Spanish'
'voice.language.faIR': 'Farsi'
'voice.language.frFR': 'French'
'voice.language.hiIN': 'Hindi'
'voice.language.idID': 'Indonesian'
'voice.language.itIT': 'Italian'
'voice.language.jaJP': 'Japanese'
'voice.language.koKR': 'Korean'
'voice.language.plPL': 'Polish'
'voice.language.ptBR': 'Portuguese'
'voice.language.roRO': 'Romanian'
'voice.language.ruRU': 'Russian'
'voice.language.slSI': 'Slovenian'
'voice.language.thTH': 'Thai'
'voice.language.trTR': 'Türkçe'
'voice.language.ukUA': 'Ukrainian'
'voice.language.viVN': 'Vietnamese'
'voice.language.zhHans': 'Chinese'
'voice.language.zhHant': 'Traditional Chinese'
'voiceInput.converting': 'Converting to text...'
'voiceInput.notAllow': 'microphone not authorized'
'voiceInput.speaking': 'Speak now...'
'voiceInput.start': 'Voice input'
'voiceInput.starting': 'Starting microphone...'
'voiceInput.stop': 'Stop recording'
'workflowAsToolPage.description': 'Turn any published workflow into a reusable tool. Use it across multiple apps to keep your builds modular and avoid repetition.'
you: 'You'
}
contacts: {
'action.cancel': 'Cancel'
'action.clearFilters': 'Clear filters'
'action.close': 'Close'
'action.loadMore': 'Load more'
'action.retry': 'Retry'
'details.account': 'Account'
'details.channels': 'Channels'
'details.channelsHelp': 'Channels available for reaching this contact.'
'details.currentWorkspaceOnly': 'Current workspace only'
'details.delivery': 'Delivery'
'details.edit': 'Edit'
'details.emailOnly': 'Email only'
'details.error': "Contact details couldn't be loaded."
'details.joined': 'Joined'
'details.loading': 'Loading contact details'
'details.membership': 'Membership'
'details.missing': '—'
'details.more': 'More contact actions'
'details.notDifyAccount': 'Not a Dify Account'
'details.notFound': 'This contact is no longer in the workspace directory.'
'details.organizationIdentity': 'Organization identity'
'details.profile': 'Contact details'
'details.remove': 'Remove'
'details.sourceWorkspace': 'Source workspace'
'details.title': 'Contact details'
'details.workspaceRole': 'Workspace role'
'details.workspaceScope': 'Workspace'
'directory.addContact': 'Add contact'
'directory.addExternal': 'Add external contact'
'directory.addFromPlatform': 'Add from Platform'
'directory.cancelSelection': 'Cancel'
'directory.channel.email': 'Email'
'directory.column.channels': 'Channels'
'directory.column.joined': 'Joined'
'directory.column.name': 'Name'
'directory.column.type': 'Type'
'directory.emptyDescription': 'Add an external contact, or invite a member to make them available for contact selection.'
'directory.emptyTitle': 'No contacts yet'
'directory.errorDescription': 'Try again to read the current workspace directory.'
'directory.errorTitle': "Contacts couldn't be loaded"
'directory.externalEmptyDescription': "External contacts are people outside your organization. Think clients, partners, or vendors. They're reached by email only."
'directory.externalEmptyTitle': 'Add your first external contact'
'directory.filters': 'Contact type filters'
'directory.loading': 'Loading contacts'
'directory.noAccessDescription': 'Only workspace owners and admins can browse the full Contacts directory.'
'directory.noAccessTitle': "You don't have access to Contacts"
'directory.noResultsDescription': 'Try another search or clear the current type filter.'
'directory.noResultsTitle': 'No matching contacts'
'directory.openDetails': 'Open contact details for {{name}}'
'directory.pageError': "More contacts couldn't be loaded. Retry this page."
'directory.removalCountTitle': 'Remove contacts ({{count}})?'
'directory.removalDescription': 'The selected contacts will be permanently removed from this workspace. This action cannot be undone.'
'directory.removalFailed': "The selected contacts couldn't be removed. Your selection has been kept."
'directory.removalSingleDescription': '{{name}} will be permanently removed from this workspace. This action cannot be undone.'
'directory.removalSingleFailed': "The contact couldn't be removed. Try again."
'directory.removalSingleTitle': 'Remove {{name}}?'
'directory.removeSelected': 'Remove'
'directory.resultCount': 'Results: {{count}}'
'directory.search': 'Search name or email'
'directory.selectAll': 'Select all removable contacts'
'directory.selectContact': 'Select {{name}}'
'directory.selected': 'Selected'
'directory.title': 'Contacts'
'directory.viewOnly': 'You can browse Contacts, but only workspace owners and admins can manage contacts.'
'external.add': 'Add'
'external.adding': 'Adding'
'external.description': 'Create a workspace-only contact that can be reached by email.'
'external.editDescription': "Update this external contact's name and email address."
'external.editTitle': 'Edit External Contact'
'external.email': 'Email'
'external.name': 'Name'
'external.namePlaceholder': 'Full name'
'external.result.duplicate_external_contact': 'An external contact with this email already exists.'
'external.result.failed': "The contact couldn't be added. Keep these details and try again."
'external.save': 'Save'
'external.saving': 'Saving'
'external.title': 'Add External Contact'
'external.validation.email_invalid': 'Enter a valid email address.'
'external.validation.email_required': 'Email is required.'
'external.validation.name_required': 'Name is required.'
'external.validation.name_too_long': 'Name must be {{maxLength}} characters or less.'
'filter.all': 'All'
'filter.external': 'External'
'filter.platform': 'Platform'
'filter.workspace': 'Workspace'
'imBinding.add': 'Bind IM identity'
'imBinding.bind': 'Bind'
'imBinding.bound': 'Already bound'
'imBinding.changeTitle': 'Change {{provider}} identity'
'imBinding.channelsLoadFailed': 'Channels could not be loaded. Try again.'
'imBinding.conflict': 'This identity is already assigned. Choose another identity.'
'imBinding.contactLabel': 'IM Contact'
'imBinding.currentWorkspaceIdentity': 'Current workspace identity (details unavailable)'
'imBinding.customized': 'Customized'
'imBinding.description': 'Select an identity from the synced directory.'
'imBinding.edit': 'Change IM identity'
'imBinding.empty': 'No synced identities found. Sync the IM directory or try another search.'
'imBinding.enterpriseReadOnly': 'IM identities are managed at the platform level.'
'imBinding.failed': 'The IM binding could not be updated. Try again.'
'imBinding.identityUnavailable': 'Identity details unavailable'
'imBinding.loadFailed': 'IM identities could not be loaded. Try again.'
'imBinding.loading': 'Loading IM identities'
'imBinding.modeDescription': 'Choose how {{name}} gets their {{provider}} identity in this workspace.'
'imBinding.modeLabel': 'Identity binding mode'
'imBinding.noOrganizationBinding': 'No organization binding'
'imBinding.notBound': 'Not bound'
'imBinding.notConfigured': 'Configure an IM channel before binding identities.'
'imBinding.notFound': 'The contact, identity, or binding is no longer available. Refresh and try again.'
'imBinding.organizationMode': 'Use the organization binding'
'imBinding.organizationUnavailable': 'Organization identity details are unavailable'
'imBinding.overrideDescription': 'Override for this workspace'
'imBinding.remove': 'Unbind IM identity'
'imBinding.reset': 'Restore default identity'
'imBinding.save': 'Save'
'imBinding.saveBinding': 'Save binding'
'imBinding.search': 'Search IM identities'
'imBinding.searchProvider': 'Search {{provider}} identities'
'imBinding.select': 'Select an IM contact'
'imBinding.title': 'Bind IM identity'
'imBinding.workspaceMode': 'Custom for this workspace'
'imPlatform.action.configure': 'Configure'
'imPlatform.action.configureChannel': 'Configure {{provider}}'
'imPlatform.action.connect': 'Connect'
'imPlatform.action.copied': 'Copied'
'imPlatform.action.copyCallback': 'Copy callback URL'
'imPlatform.action.deleteChannel': 'Delete {{provider}}'
'imPlatform.action.loadMore': 'Load more'
'imPlatform.action.replace': 'Replace'
'imPlatform.action.retry': 'Retry'
'imPlatform.action.save': 'Save'
'imPlatform.action.saving': 'Saving'
'imPlatform.action.setupGuide': 'Setup guide'
'imPlatform.action.syncNow': 'Sync now'
'imPlatform.action.syncing': 'Syncing'
'imPlatform.action.testConnection': 'Test connection'
'imPlatform.action.testing': 'Testing'
'imPlatform.action.viewDetails': 'View details'
'imPlatform.bindingDialog.back': 'Back'
'imPlatform.bindingDialog.callback': 'Callback URL'
'imPlatform.bindingDialog.callbackDescription': 'Complete callback setup in {{provider}} to enable card actions.'
'imPlatform.bindingDialog.callbackInstruction.feishu.destination': 'For card actions, paste this URL in the <console>Feishu Developer Console</console>:'
'imPlatform.bindingDialog.callbackInstruction.feishu.path': 'Events & Callbacks → Callback configuration → Request URL'
'imPlatform.bindingDialog.callbackInstruction.lark.destination': 'For card actions, paste this URL in the <console>Lark Developer Console</console>:'
'imPlatform.bindingDialog.callbackInstruction.lark.path': 'Events & Callbacks → Callback configuration → Request URL'
'imPlatform.bindingDialog.callbackInstruction.slack.destination': 'For card actions, paste this URL in the <console>Slack Developer Console</console>:'
'imPlatform.bindingDialog.callbackInstruction.slack.path': 'Interactivity & Shortcuts → Interactivity → Request URL'
'imPlatform.bindingDialog.callbackInstruction.teams.destination': 'For card actions, paste this URL in the <console>Azure Bot configuration</console>:'
'imPlatform.bindingDialog.callbackInstruction.teams.path': 'Settings → Configuration → Messaging endpoint'
'imPlatform.bindingDialog.callbackStep': 'Configure callbacks'
'imPlatform.bindingDialog.clearSavedCredential': 'Clear saved value'
'imPlatform.bindingDialog.configureTitle': 'Configure {{provider}}'
'imPlatform.bindingDialog.connectTitle': 'Connect {{provider}}'
'imPlatform.bindingDialog.credentialWillBeCleared': 'This saved value will be cleared when you save.'
'imPlatform.bindingDialog.credentialsDescription': 'Connect your {{provider}} app first, then configure its callback URL.'
'imPlatform.bindingDialog.credentialsStep': 'App credentials'
'imPlatform.bindingDialog.description': 'Enter the application credentials for this IM provider.'
'imPlatform.bindingDialog.field.agentId': 'Agent ID'
'imPlatform.bindingDialog.field.appId': 'App ID'
'imPlatform.bindingDialog.field.appToken': 'App Token (optional)'
'imPlatform.bindingDialog.field.botToken': 'Bot Token'
'imPlatform.bindingDialog.field.clientId': 'Client ID'
'imPlatform.bindingDialog.field.clientSecret': 'Client Secret'
'imPlatform.bindingDialog.field.corpId': 'Corp ID'
'imPlatform.bindingDialog.field.encryptKey': 'Encrypt Key (optional)'
'imPlatform.bindingDialog.field.genericSecret': 'Secret'
'imPlatform.bindingDialog.field.secret': 'App Secret'
'imPlatform.bindingDialog.field.signingSecret': 'Signing Secret'
'imPlatform.bindingDialog.field.tenantId': 'Tenant ID'
'imPlatform.bindingDialog.field.verificationToken': 'Verification Token (optional)'
'imPlatform.bindingDialog.fieldPlaceholder.appId': 'cli_...'
'imPlatform.bindingDialog.fieldPlaceholder.encryptKey': 'Enter Encrypt Key, if enabled'
'imPlatform.bindingDialog.fieldPlaceholder.secret': 'Enter App Secret'
'imPlatform.bindingDialog.fieldPlaceholder.verificationToken': 'Enter Verification Token, if configured'
'imPlatform.bindingDialog.finish': 'Finish'
'imPlatform.bindingDialog.freshCredentials': 'Saved secrets cannot be retrieved. Re-enter all required credentials to test or save this configuration.'
'imPlatform.bindingDialog.openSetupGuide': 'Open setup guide'
'imPlatform.bindingDialog.replaceTenantTitle': 'Replace tenant credentials for {{identity}}?'
'imPlatform.bindingDialog.replacementRequired': 'These credentials belong to a different IM tenant and cannot be saved directly. Switching tenants requires replacing the current IM channel, which clears all automatic and manual IM bindings. Sync contacts again after replacement.'
'imPlatform.bindingDialog.required': 'This field is required.'
'imPlatform.bindingDialog.saveAndContinue': 'Save and continue'
'imPlatform.bindingDialog.saveFailed': "Configuration couldn't be saved. Check the fields and try again."
'imPlatform.bindingDialog.savedDetailsUnavailable': 'The configuration was saved, but its details could not be loaded. Close this dialog and reopen it.'
'imPlatform.bindingDialog.secretConfigured': 'A secret is already configured. Leave this field blank to keep it.'
'imPlatform.bindingDialog.step': 'Step {{step}}'
'imPlatform.bindingDialog.testFailed': 'The connection test failed. Check the configuration and try again.'
'imPlatform.bindingDialog.undoClearCredential': 'Undo clear'
'imPlatform.bindingDialog.viewSetupGuide': 'View setup guide'
'imPlatform.chooseProvider': 'Choose a channel to connect'
'imPlatform.configurationUpdated': 'This channel configuration has changed. Close this dialog and refresh before trying again.'
'imPlatform.connectMore': 'Connect more channels'
'imPlatform.delete.confirm': 'Delete'
'imPlatform.delete.description': 'Deleting this channel removes its configuration. Any approval delivery or directory sync that uses it will stop.'
'imPlatform.delete.failed': "The channel couldn't be deleted. Nothing has changed; try again."
'imPlatform.delete.title': 'Delete {{provider}} channel?'
'imPlatform.description': 'Connect your company channels so approval requests reach people where they work.'
'imPlatform.details.column.contact': 'Contacts'
'imPlatform.details.column.platform': 'IM platform'
'imPlatform.details.description': 'View the read-only results for the latest sync run.'
'imPlatform.details.downloadFailed': 'The report could not be downloaded. Try again.'
'imPlatform.details.downloadReport': 'Download report'
'imPlatform.details.downloadingReport': 'Downloading report…'
'imPlatform.details.empty': 'No results in this category.'
'imPlatform.details.filter.added': 'Added'
'imPlatform.details.filter.failed': 'Failed'
'imPlatform.details.filter.not_matched': 'Not matched'
'imPlatform.details.filter.removed': 'Removed'
'imPlatform.details.filter.skipped': 'Skipped'
'imPlatform.details.filters': 'Sync result filters'
'imPlatform.details.latestMetadata': '{{status}} · {{date}}'
'imPlatform.details.loadError': "Sync details couldn't be loaded."
'imPlatform.details.missing': '—'
'imPlatform.details.pageError': "More results couldn't be loaded. Retry this page."
'imPlatform.details.removalReason.binding_invalidated': 'Binding invalidated'
'imPlatform.details.removalReason.binding_replaced': 'Binding replaced'
'imPlatform.details.removalReason.not_present_in_directory': 'No longer in the directory'
'imPlatform.details.reportChanged': 'The sync results changed. Reopen the latest sync details and try again.'
'imPlatform.details.title': 'Sync details'
'imPlatform.email.apiKey': 'API Key'
'imPlatform.email.apiKeyConfigured': 'For security reasons, the saved API Key cannot be viewed. Leave this field blank to keep it.'
'imPlatform.email.apiKeyDescription': 'For security reasons, this API Key cannot be viewed once saved.'
'imPlatform.email.apiKeyPlaceholder': 'Enter your Resend API Key'
'imPlatform.email.description': 'This configuration applies to all Human Input nodes in this workspace with <emphasis>Send debug notifications via Email</emphasis> enabled.'
'imPlatform.email.invalidEmail': 'Enter a valid email address.'
'imPlatform.email.provider': 'Email Provider'
'imPlatform.email.resendDescription': 'Your <apiKey>Resend API Key</apiKey> will be encrypted and cannot be viewed after it is saved.<br/>Sign up for a <resend>Resend</resend> account.'
'imPlatform.email.resendSettings': 'Resend settings'
'imPlatform.email.senderEmail': 'Sender email address'
'imPlatform.email.senderEmailDescription': 'The email address shown as the sender. Its domain must be verified in Resend.'
'imPlatform.email.senderName': 'Sender name'
'imPlatform.email.senderNameDescription': "Name displayed in the recipient's inbox."
'imPlatform.email.testSucceeded': 'Connection test succeeded.'
'imPlatform.email.title': 'Configure Email'
'imPlatform.learnMore': 'Learn more'
'imPlatform.loadError.description': 'Try again to read the current binding and permissions.'
'imPlatform.loadError.retry': 'Try again'
'imPlatform.loadError.title': "Channels couldn't be loaded"
'imPlatform.loading': 'Loading channels'
'imPlatform.provider.dingtalkDescription': 'Connect a DingTalk application.'
'imPlatform.provider.emailDescription': 'Configure the email service used to send approval requests from this workspace.'
'imPlatform.provider.feishuDescription': 'Connect a Feishu application.'
'imPlatform.provider.larkDescription': 'Connect a Lark application.'
'imPlatform.provider.msTeamsDescription': 'Connect a Microsoft Teams application.'
'imPlatform.provider.slackDescription': 'Sync people and their Slack identities.'
'imPlatform.provider.weComDescription': 'Connect a WeCom application.'
'imPlatform.replacement.confirm': 'Replace'
'imPlatform.replacement.description': 'Replacing the active provider invalidates its IM bindings and workspace overrides. Sync the new provider directory again after replacement.'
'imPlatform.replacement.title': 'Replace {{current}} with {{next}}?'
'imPlatform.status.configured': 'Configured'
'imPlatform.status.connected': 'Connected'
'imPlatform.status.connection_error': 'Connection error'
'imPlatform.status.permission_issue': 'Permission issue'
'imPlatform.sync.latestSynced': 'Last synced {{date}}'
'imPlatform.sync.loading': 'Checking for an active sync.'
'imPlatform.sync.noPermission': 'Only workspace owners and admins can start directory sync.'
'imPlatform.sync.noRuns': 'No directory sync has run yet.'
'imPlatform.sync.notConnected': 'Connect and test a provider before starting directory sync.'
'imPlatform.sync.startFailed': "Directory sync couldn't be started or refreshed. Try again."
'imPlatform.sync.status.failure': 'Failed'
'imPlatform.sync.status.queued': 'Queued'
'imPlatform.sync.status.running': 'Running'
'imPlatform.sync.status.success': 'Success'
'imPlatform.title': 'Channels'
'memberRemoval.accessImpact': '{{memberName}} will immediately lose access to this workspace.'
'memberRemoval.contentImpact': 'Apps and knowledge they created stay here. This action cannot be undone.'
'memberRemoval.remove': 'Remove'
'memberRemoval.title': 'Remove {{memberName}} from the workspace?'
'memberRemoval.workspaceTitle': 'Remove {{memberName}} from {{workspaceName}}?'
'platformPicker.add': 'Add contacts'
'platformPicker.addConflict': "The selected contacts couldn't be added because the data conflicts. Refresh the list and try again. Your selection has been kept."
'platformPicker.addFailed': "The selected contacts couldn't be added. Your selection has been kept."
'platformPicker.addForbidden': 'Only workspace administrators in an Enterprise deployment can add Platform contacts.'
'platformPicker.adding': 'Adding'
'platformPicker.allMembers': 'All Members'
'platformPicker.description': 'Choose Platform contacts that are not already in this workspace Contacts directory.'
'platformPicker.empty': 'No available Platform contacts match this search.'
'platformPicker.error': "Platform contacts couldn't be loaded."
'platformPicker.loading': 'Loading Platform contacts'
'platformPicker.search': 'Search Platform contacts'
'platformPicker.selectContact': 'Select {{name}}'
'platformPicker.selected': '{{count}} selected'
'platformPicker.title': 'Add from Platform'
'type.external': 'External'
'type.platform': 'Platform'
'type.workspace': 'Workspace'
}
custom: {
apply: 'Apply'
change: 'Change'
custom: 'Customization'
'customize.contactUs': ' contact us '
'customize.prefix': 'To customize the brand logo within the app, please'
'customize.suffix': 'to upgrade to the Enterprise edition.'
restore: 'Restore Defaults'
'upgradeTip.des': 'Upgrade your plan to customize your brand'
'upgradeTip.title': 'Upgrade your plan'
upload: 'Upload'
uploadedFail: 'Image upload failed, please re-upload.'
uploading: 'Uploading'
'webapp.changeLogo': 'Change Powered by Brand Image'
'webapp.changeLogoTip': 'SVG or PNG format with a minimum size of 40x40px'
'webapp.removeBrand': 'Remove Powered by Dify'
}
dataset: {
allExternalTip: 'When using external knowledge only, the user can choose whether to enable the Rerank model. If not enabled, retrieved chunks will be sorted based on scores. When the retrieval strategies of different knowledge bases are inconsistent, it will be inaccurate.'
allKnowledge: 'All Knowledge'
allKnowledgeDescription: 'Select to display all knowledge in this workspace. Only the Workspace Owner can manage all knowledge.'
appCount: ' linked apps'
'batchAction.archive': 'Archive'
'batchAction.cancel': 'Cancel'
'batchAction.delete': 'Delete'
'batchAction.disable': 'Disable'
'batchAction.download': 'Download'
'batchAction.enable': 'Enable'
'batchAction.reIndex': 'Re-index'
'batchAction.selected': 'Selected'
'chunkingMode.general': 'General'
'chunkingMode.graph': 'Graph'
'chunkingMode.parentChild': 'Parent-child'
'chunkingMode.qa': 'Q&A'
connectDataset: 'Connect to an External Knowledge Base'
'connectDatasetIntro.content.end': '. Then find the corresponding knowledge ID and fill it in the form on the left. If all the information is correct, it will automatically jump to the retrieval test in the knowledge base after clicking the connect button.'
'connectDatasetIntro.content.front': 'To connect to an external knowledge base, you need to create an external API first. Please read carefully and refer to'
'connectDatasetIntro.content.link': 'Learn how to create an external API'
'connectDatasetIntro.learnMore': 'Learn More'
'connectDatasetIntro.title': 'How to Connect to an External Knowledge Base'
'connectHelper.helper1': 'Connect to external knowledge bases via API and knowledge base ID. Currently, '
'connectHelper.helper2': 'only the retrieval functionality is supported'
'connectHelper.helper3': '. We strongly recommend that you '
'connectHelper.helper4': 'read the help documentation'
'connectHelper.helper5': ' carefully before using this feature.'
'cornerLabel.pipeline': 'Pipeline'
'cornerLabel.unavailable': 'Unavailable'
createExternalAPI: 'Add an External Knowledge API'
createNewExternalAPI: 'Create a new External Knowledge API'
'creatorFilter.creators': 'Creators'
'creatorFilter.maxCreators': 'Maximum creators'
datasetUsedByApp: 'The knowledge is being used by some apps. Apps will no longer be able to use this Knowledge, and all prompt configurations and logs will be permanently deleted.'
defaultRetrievalTip: 'Multi-path retrieval is used by default. Knowledge is retrieved from multiple knowledge bases and then re-ranked.'
deleteDatasetConfirmContent: 'Deleting the Knowledge is irreversible. Users will no longer be able to access your Knowledge, and all prompt configurations and logs will be permanently deleted.'
deleteDatasetConfirmTitle: 'Delete this Knowledge?'
'deleteExternalAPIConfirmWarningContent.content.end': 'external knowledge. Deleting this API will invalidate all of them. Are you sure you want to delete this API?'
'deleteExternalAPIConfirmWarningContent.content.front': 'This External Knowledge API is linked to'
'deleteExternalAPIConfirmWarningContent.noConnectionContent': 'Are you sure to delete this API?'
'deleteExternalAPIConfirmWarningContent.title.end': '?'
'deleteExternalAPIConfirmWarningContent.title.front': 'Delete'
docAllEnabled: '{{count}} document enabled' | 'All {{count}} documents enabled'
docsFailedNotice: 'documents indexed failed'
documentsDisabled: '{{num}} documents disabled - inactive for over 30 days'
'editExternalAPIConfirmWarningContent.end': 'external knowledge, and this modification will be applied to all of them. Are you sure you want to save this change?'
'editExternalAPIConfirmWarningContent.front': 'This External Knowledge API is linked to'
editExternalAPIFormTitle: 'Edit the External Knowledge API'
'editExternalAPIFormWarning.end': 'external knowledge'
'editExternalAPIFormWarning.front': 'This External API is linked to'
editExternalAPITooltipTitle: 'LINKED KNOWLEDGE'
embeddingModelNotAvailable: 'Embedding model is unavailable.'
enable: 'Enable'
'externalAPIForm.cancel': 'Cancel'
'externalAPIForm.encrypted.end': 'technology.'
'externalAPIForm.encrypted.front': 'Your API Token will be encrypted and stored using'
'externalAPIForm.save': 'Save'
externalAPIPanelDescription: 'The external knowledge API is used to connect to a knowledge base outside of Dify and retrieve knowledge from that knowledge base.'
externalAPIPanelDocumentation: 'Learn how to create an External Knowledge API'
externalAPIPanelTitle: 'External Knowledge API'
externalKnowledgeBase: 'External Knowledge Base'
externalKnowledgeDescription: 'Knowledge Description'
externalKnowledgeDescriptionPlaceholder: "Describe what's in this Knowledge Base (optional)"
'externalKnowledgeForm.cancel': 'Cancel'
'externalKnowledgeForm.connect': 'Connect'
'externalKnowledgeForm.connectedFailed': 'Failed to connect External Knowledge Base'
'externalKnowledgeForm.connectedSuccess': 'External Knowledge Base Connected Successfully'
externalKnowledgeId: 'External Knowledge ID'
externalKnowledgeIdPlaceholder: 'Please enter the Knowledge ID'
externalKnowledgeName: 'External Knowledge Name'
externalKnowledgeNamePlaceholder: 'Please enter the name of the knowledge base'
externalTag: 'External'
'filterEmpty.noKnowledge': 'No knowledge here'
'firstEmpty.connectDescription': 'Already have a knowledge base? Connect it via API without migrating data.'
'firstEmpty.createDescription': 'Upload documents and let Dify handle the rest. The fastest way to get started.'
'firstEmpty.createTitle': 'Create a ready-to-use knowledge base'
'firstEmpty.noCreatePermission': 'No accessible knowledge bases.\nContact the resource maintainer or your Workspace Owner to request access.'
'firstEmpty.or': 'Or'
'firstEmpty.pipelineDescription': 'Build a custom data processing workflow with flexible nodes and steps.'
'firstEmpty.pipelineTitle': 'Build a custom knowledge base'
'firstEmpty.recommended': 'Recommended'
'firstEmpty.title': 'Build your first Knowledge base'
'imageUploader.browse': 'Browse'
'imageUploader.button': 'Drag and drop file or folder, or'
'imageUploader.fileSizeLimitExceeded': 'File size exceeds the {{size}}MB limit'
'imageUploader.tip': '{{supportTypes}} (Max {{batchCount}}, {{size}}MB each)'
inconsistentEmbeddingModelTip: 'The Rerank model is required if the Embedding models of the selected knowledge bases are inconsistent.'
'indexingMethod.full_text_search': 'FULL TEXT'
'indexingMethod.hybrid_search': 'HYBRID'
'indexingMethod.invertedIndex': 'INVERTED'
'indexingMethod.keyword_search': 'KEYWORD'
'indexingMethod.semantic_search': 'VECTOR'
'indexingTechnique.economy': 'ECO'
'indexingTechnique.high_quality': 'HQ'
knowledge: 'Knowledge'
'metadata.addMetadata': 'Add Metadata'
'metadata.batchEditMetadata.applyToAllSelectDocument': 'Apply to all selected documents'
'metadata.batchEditMetadata.applyToAllSelectDocumentTip': 'Automatically create all the above edited and new metadata for all selected documents, otherwise editing metadata will only apply to documents with it.'
'metadata.batchEditMetadata.editDocumentsNum': 'Editing {{num}} documents'
'metadata.batchEditMetadata.editMetadata': 'Edit Metadata'
'metadata.batchEditMetadata.multipleValue': 'Multiple Value'
'metadata.checkName.duplicate': 'A metadata field with this name already exists'
'metadata.checkName.empty': 'Metadata name cannot be empty'
'metadata.checkName.invalid': 'Metadata name can only contain lowercase letters, numbers, and underscores and must start with a lowercase letter'
'metadata.checkName.tooLong': 'Metadata name cannot exceed {{max}} characters'
'metadata.chooseTime': 'Choose a time...'
'metadata.createMetadata.back': 'Back'
'metadata.createMetadata.name': 'Name'
'metadata.createMetadata.namePlaceholder': 'Add metadata name'
'metadata.createMetadata.title': 'New Metadata'
'metadata.createMetadata.type': 'Type'
'metadata.datasetMetadata.addMetaData': 'Add Metadata'
'metadata.datasetMetadata.builtIn': 'Built-in'
'metadata.datasetMetadata.builtInDescription': 'Built-in metadata is automatically extracted and generated. It must be enabled before use and cannot be edited.'
'metadata.datasetMetadata.deleteContent': 'Are you sure you want to delete the metadata "{{name}}"'
'metadata.datasetMetadata.deleteTitle': 'Confirm to delete'
'metadata.datasetMetadata.description': 'You can manage all metadata in this knowledge here. Modifications will be synchronized to every document.'
'metadata.datasetMetadata.disabled': 'Disabled'
'metadata.datasetMetadata.name': 'Name'
'metadata.datasetMetadata.namePlaceholder': 'Metadata name'
'metadata.datasetMetadata.rename': 'Rename'
'metadata.datasetMetadata.values': '{{num}} Values'
'metadata.documentMetadata.documentInformation': 'Document Information'
'metadata.documentMetadata.metadataToolTip': 'Metadata serves as a critical filter that enhances the accuracy and relevance of information retrieval. You can modify and add metadata for this document here.'
'metadata.documentMetadata.startLabeling': 'Start labeling'
'metadata.documentMetadata.technicalParameters': 'Technical Parameters'
'metadata.metadata': 'Metadata'
'metadata.selectMetadata.manageAction': 'Manage'
'metadata.selectMetadata.newAction': 'New Metadata'
'metadata.selectMetadata.search': 'Search metadata'
'metadata.type.number': 'Number'
'metadata.type.string': 'String'
'metadata.type.time': 'Time'
mixtureHighQualityAndEconomicTip: 'The Rerank model is required for mixture of high quality and economical knowledge bases.'
mixtureInternalAndExternalTip: 'The Rerank model is required for mixture of internal and external knowledge.'
multimodal: 'Multimodal'
noExternalKnowledge: 'There is no External Knowledge API yet, click here to create'
'parentMode.fullDoc': 'Full-doc'
'parentMode.paragraph': 'Paragraph'
partialEnabled:
| 'Total of {{count}} document, {{num}} available'
| 'Total of {{count}} documents, {{num}} available'
preprocessDocument: '{{num}} Preprocess Documents'
rerankSettings: 'Rerank Setting'
'retrieval.full_text_search.description': 'Index all terms in the document, allowing users to search any term and retrieve relevant text chunk containing those terms.'
'retrieval.full_text_search.title': 'Full-Text Search'
'retrieval.hybrid_search.description': "Execute full-text search and vector searches simultaneously, re-rank to select the best match for the user's query. Users can choose to set weights or configure to a Rerank model."
'retrieval.hybrid_search.title': 'Hybrid Search'
'retrieval.keyword_search.description': 'Inverted Index is a structure used for efficient retrieval. Organized by terms, each term points to documents or web pages containing it.'
'retrieval.keyword_search.title': 'Inverted Index'
'retrieval.semantic_search.description': 'Generate query embeddings and search for the text chunk most similar to its vector representation.'
'retrieval.semantic_search.title': 'Vector Search'
retrievalSettings: 'Retrieval Setting'
retry: 'Retry'
'selectExternalKnowledgeAPI.placeholder': 'Choose an External Knowledge API'
'serviceApi.card.apiKey': 'API Key'
'serviceApi.card.apiReference': 'API Reference'
'serviceApi.card.endpoint': 'Service API Endpoint'
'serviceApi.card.title': 'Backend service api'
'serviceApi.disabled': 'Disabled'
'serviceApi.enabled': 'Enabled'
'serviceApi.title': 'Service API'
unavailable: 'Unavailable'
unknownError: 'Unknown error'
updated: 'Updated'
'validation.invalidHttpUrl': 'Enter a valid http(s) URL.'
'weightedScore.description': 'By adjusting the weights assigned, this rerank strategy determines whether to prioritize semantic or keyword matching.'
'weightedScore.keyword': 'Keyword'
'weightedScore.semantic': 'Semantic'
'weightedScore.title': 'Weighted Score'
}
datasetCreation: {
'error.unavailable': 'This Knowledge is not available'
'stepOne.button': 'Next'
'stepOne.connect': 'Go to connect'
'stepOne.dataSourceType.file': 'Import from file'
'stepOne.dataSourceType.notion': 'Sync from Notion'
'stepOne.dataSourceType.web': 'Sync from website'
'stepOne.emptyDatasetCreation': 'I want to create an empty Knowledge'
'stepOne.filePreview': 'File Preview'
'stepOne.modal.cancelButton': 'Cancel'
'stepOne.modal.confirmButton': 'Create'
'stepOne.modal.failed': 'Creation failed'
'stepOne.modal.input': 'Knowledge name'
'stepOne.modal.nameLengthInvalid': 'Name must be between 1 to 40 characters'
'stepOne.modal.nameNotEmpty': 'Name cannot be empty'
'stepOne.modal.placeholder': 'Please input'
'stepOne.modal.tip': 'An empty Knowledge will contain no documents, and you can upload documents any time.'
'stepOne.modal.title': 'Create an empty Knowledge'
'stepOne.notionSyncTip': 'To sync with Notion, connection to Notion must be established first.'
'stepOne.notionSyncTitle': 'Notion is not connected'
'stepOne.pagePreview': 'Page Preview'
'stepOne.uploader.browse': 'Browse'
'stepOne.uploader.button': 'Drag and drop file or folder, or'
'stepOne.uploader.buttonSingleFile': 'Drag and drop file, or'
'stepOne.uploader.change': 'Change'
'stepOne.uploader.completed': 'Upload complete'
'stepOne.uploader.failed': 'Upload failed'
'stepOne.uploader.tip': 'Supports {{supportTypes}}. Max {{batchCount}} in a batch and {{size}} MB each.'
'stepOne.uploader.tipWithTotalLimit': 'Supports {{supportTypes}}. Max {{batchCount}} in a batch and {{size}} MB each. Max total {{totalCount}} files.'
'stepOne.uploader.title': 'Upload file'
'stepOne.uploader.validation.count': 'Multiple files not supported'
'stepOne.uploader.validation.filesNumber': 'You have reached the batch upload limit of {{filesNumber}}.'
'stepOne.uploader.validation.size': 'File too large. Maximum is {{size}}MB'
'stepOne.uploader.validation.typeError': 'File type not supported'
'stepOne.website.chooseProvider': 'Select a provider'
'stepOne.website.configure': 'Configure'
'stepOne.website.configureFirecrawl': 'Configure Firecrawl'
'stepOne.website.configureJinaReader': 'Configure Jina Reader'
'stepOne.website.configureWatercrawl': 'Configure Watercrawl'
'stepOne.website.crawlSubPage': 'Crawl sub-pages'
'stepOne.website.exceptionErrorTitle': 'An exception occurred while running crawling job:'
'stepOne.website.excludePaths': 'Exclude paths'
'stepOne.website.extractOnlyMainContent': 'Extract only main content (no headers, navs, footers, etc.)'
'stepOne.website.fireCrawlNotConfigured': 'Firecrawl is not configured'
'stepOne.website.fireCrawlNotConfiguredDescription': 'Configure Firecrawl with API key to use it.'
'stepOne.website.firecrawlDoc': 'Firecrawl docs'
'stepOne.website.firecrawlTitle': 'Extract web content with 🔥Firecrawl'
'stepOne.website.includeOnlyPaths': 'Include only paths'
'stepOne.website.jinaReaderDoc': 'Learn more about Jina Reader'
'stepOne.website.jinaReaderNotConfigured': 'Jina Reader is not configured'
'stepOne.website.jinaReaderNotConfiguredDescription': 'Set up Jina Reader by entering your free API key for access.'
'stepOne.website.jinaReaderTitle': 'Convert the entire site to Markdown'
'stepOne.website.limit': 'Limit'
'stepOne.website.maxDepth': 'Max depth'
'stepOne.website.maxDepthTooltip': 'Maximum depth to crawl relative to the entered URL. Depth 0 just scrapes the page of the entered url, depth 1 scrapes the url and everything after enteredURL + one /, and so on.'
'stepOne.website.options': 'Options'
'stepOne.website.preview': 'Preview'
'stepOne.website.resetAll': 'Reset All'
'stepOne.website.run': 'Run'
'stepOne.website.running': 'Running'
'stepOne.website.scrapTimeInfo': 'Scraped {{total}} pages in total within {{time}}s'
'stepOne.website.selectAll': 'Select All'
'stepOne.website.totalPageScraped': 'Total pages scraped:'
'stepOne.website.unknownError': 'Unknown error'
'stepOne.website.useSitemap': 'Use sitemap'
'stepOne.website.useSitemapTooltip': 'Follow the sitemap to crawl the site. If not, Jina Reader will crawl iteratively based on page relevance, yielding fewer but higher-quality pages.'
'stepOne.website.waterCrawlNotConfigured': 'Watercrawl is not configured'
'stepOne.website.waterCrawlNotConfiguredDescription': 'Configure Watercrawl with API key to use it.'
'stepOne.website.watercrawlDoc': 'Watercrawl docs'
'stepOne.website.watercrawlTitle': 'Extract web content with Watercrawl'
'stepThree.additionP1': 'The document has been uploaded to the Knowledge'
'stepThree.additionP2': ', you can find it in the document list of the Knowledge.'
'stepThree.additionTitle': '🎉 Document uploaded'
'stepThree.creationContent': 'We automatically named the Knowledge, you can modify it at any time.'
'stepThree.creationTitle': '🎉 Knowledge created'
'stepThree.label': 'Knowledge name'
'stepThree.navTo': 'Go to document'
'stepThree.sideTipContent': 'After finishing document indexing, you can manage and edit documents, run retrieval tests, and modify knowledge settings. Knowledge can then be integrated into your application as context, so make sure to adjust the Retrieval Setting to ensure optimal performance.'
'stepThree.sideTipTitle': "What's next"
'stepTwo.QATip': 'Enable this option will consume more tokens'
'stepTwo.cancel': 'Cancel'
'stepTwo.childChunkForRetrieval': 'Child-chunk for Retrieval'
'stepTwo.datasetSettingLink': 'Knowledge settings.'
'stepTwo.economical': 'Economical'
'stepTwo.economicalTip': 'Using 10 keywords per chunk for retrieval, no tokens are consumed at the expense of reduced retrieval accuracy.'
'stepTwo.fullDoc': 'Full Doc'
'stepTwo.fullDocTip': 'The entire document is used as the parent chunk and retrieved directly. Please note that for performance reasons, text exceeding 10000 tokens will be automatically truncated.'
'stepTwo.general': 'General'
'stepTwo.generalTip': 'General text chunking mode, the chunks retrieved and recalled are the same.'
'stepTwo.highQualityTip': 'Once finishing embedding in High Quality mode, reverting to Economical mode is not available.'
'stepTwo.indexMode': 'Index Method'
'stepTwo.indexSettingTip': 'To change the index method & embedding model, please go to the '
'stepTwo.maxLength': 'Maximum chunk length'
'stepTwo.maxLengthCheck': 'Maximum chunk length should be less than {{limit}}'
'stepTwo.nextStep': 'Save & Process'
'stepTwo.notAvailableForParentChild': 'Not available for Parent-child Index'
'stepTwo.notAvailableForQA': 'Not available for Q&A Index'
'stepTwo.overlap': 'Chunk overlap'
'stepTwo.overlapCheck': 'chunk overlap should not bigger than maximum chunk length'
'stepTwo.overlapTip': 'Setting the chunk overlap can maintain the semantic relevance between them, enhancing the retrieve effect. It is recommended to set 10%-25% of the maximum chunk size.'
'stepTwo.paragraph': 'Paragraph'
'stepTwo.paragraphTip': 'This mode splits the text in to paragraphs based on delimiters and the maximum chunk length, using the split text as the parent chunk for retrieval.'
'stepTwo.parentChild': 'Parent-child'
'stepTwo.parentChildChunkDelimiterTip': 'A delimiter is the character used to separate text. \\n is recommended for splitting parent chunks into small child chunks. You can also use special delimiters defined by yourself.'
'stepTwo.parentChildDelimiterTip': 'A delimiter is the character used to separate text. \\n\\n is recommended for splitting the original document into large parent chunks. You can also use special delimiters defined by yourself.'
'stepTwo.parentChildTip': 'When using the parent-child mode, the child-chunk is used for retrieval and the parent-chunk is used for recall as context.'
'stepTwo.parentChunkForContext': 'Parent-chunk for Context'
'stepTwo.preview': 'Preview'
'stepTwo.previewChunk': 'Preview Chunk'
'stepTwo.previewChunkCount': '{{count}} Estimated chunks'
'stepTwo.previewChunkTip': "Click the 'Preview Chunk' button on the left to load the preview"
'stepTwo.previousStep': 'Previous step'
'stepTwo.qaSwitchHighQualityTipContent': 'Currently, only high-quality index method supports Q&A format chunking. Would you like to switch to high-quality mode?'
'stepTwo.qaSwitchHighQualityTipTitle': 'Q&A Format Requires High-quality Indexing Method'
'stepTwo.qaTip': 'When using structured Q&A data, you can create documents that pair questions with answers. These documents are indexed based on the question portion, allowing the system to retrieve relevant answers based on query similarity.'
'stepTwo.qualified': 'High Quality'
'stepTwo.qualifiedTip': 'Calling the embedding model to process documents for more precise retrieval helps LLM generate high-quality answers.'
'stepTwo.recommend': 'Recommend'
'stepTwo.removeExtraSpaces': 'Replace consecutive spaces, newlines and tabs'
'stepTwo.removeStopwords': 'Remove stopwords such as "a", "an", "the"'
'stepTwo.removeUrlEmails': 'Delete all URLs and email addresses'
'stepTwo.reset': 'Reset'
'stepTwo.rules': 'Text Pre-processing Rules'
'stepTwo.save': 'Save & Process'
'stepTwo.segmentation': 'Chunk Settings'
'stepTwo.separator': 'Delimiter'
'stepTwo.separatorPlaceholder': '\\n\\n for paragraphs; \\n for lines'
'stepTwo.separatorTip': 'A delimiter is the character used to separate text. \\n\\n and \\n are commonly used delimiters for separating paragraphs and lines. Combined with commas (\\n\\n,\\n), paragraphs will be segmented by lines when exceeding the maximum chunk length. You can also use special delimiters defined by yourself (e.g. ***).'
'stepTwo.switch': 'Switch'
'stepTwo.useQALanguage': 'Chunk using Q&A format in'
'steps.header.fallbackRoute': 'Knowledge'
'steps.one': 'Data Source'
'steps.three': 'Execute & Finish'
'steps.two': 'Document Processing'
}
datasetDocuments: {
'embedding.childMaxTokens': 'Child'
'embedding.completed': 'Embedding completed'
'embedding.custom': 'Custom'
'embedding.error': 'Embedding error'
'embedding.hierarchical': 'Parent-child'
'embedding.mode': 'Chunking Setting'
'embedding.parentMaxTokens': 'Parent'
'embedding.pause': 'Pause'
'embedding.paused': 'Embedding paused'
'embedding.processing': 'Embedding processing...'
'embedding.resume': 'Resume'
'embedding.segmentLength': 'Maximum Chunk Length'
'embedding.segments': 'Paragraphs'
'embedding.textCleaning': 'Text Preprocessing Rules'
'embedding.vectorSpaceEstimateExceeded.description': 'Document received, but estimated vector storage is {{estimated}} MB, above your plan limit of {{limit}} MB, so no vectors were written. If another document is processing or just failed, try again later; otherwise, reduce the file size or number of chunks.'
'embedding.vectorSpaceEstimateExceeded.title': 'Estimated vector storage after upload exceeds your plan capacity'
'embedding.waiting': 'Embedding waiting...'
'list.action.addButton': 'Add chunk'
'list.action.archive': 'Archive'
'list.action.batchAdd': 'Batch add'
'list.action.delete': 'Delete'
'list.action.download': 'Download'
'list.action.enableWarning': 'Archived file cannot be enabled'
'list.action.pause': 'Pause'
'list.action.resume': 'Resume'
'list.action.settings': 'Chunking Settings'
'list.action.summary': 'Generate summary'
'list.action.sync': 'Sync'
'list.action.unarchive': 'Unarchive'
'list.addFile': 'Add file'
'list.addPages': 'Add Pages'
'list.addUrl': 'Add URL'
'list.batchModal.answer': 'answer'
'list.batchModal.browse': 'browse'
'list.batchModal.cancel': 'Cancel'
'list.batchModal.completed': 'Import completed'
'list.batchModal.content': 'content'
'list.batchModal.contentTitle': 'chunk content'
'list.batchModal.csvUploadTitle': 'Drag and drop your CSV file here, or '
'list.batchModal.error': 'Import Error'
'list.batchModal.ok': 'OK'
'list.batchModal.processing': 'In batch processing'
'list.batchModal.question': 'question'
'list.batchModal.run': 'Run Batch'
'list.batchModal.runError': 'Run batch failed'
'list.batchModal.template': 'Download the template here'
'list.batchModal.title': 'Batch add chunks'
'list.delete.content': 'If you need to resume processing later, you will continue from where you left off'
'list.delete.title': 'Are you sure Delete?'
'list.desc': 'All files of the Knowledge are shown here, and the entire Knowledge can be linked to Dify citations or indexed via the Chat plugin.'
'list.empty.sync.tip': 'Dify will periodically download files from your Notion and complete processing.'
'list.empty.title': 'There is no documentation yet'
'list.empty.upload.tip': 'You can upload files, sync from the website, or from web apps like Notion, GitHub, etc.'
'list.index.all': 'All'
'list.learnMore': 'Learn more'
'list.sort.hitCount': 'Retrieval Count'
'list.sort.uploadTime': 'Upload Time'
'list.status.archived': 'Archived'
'list.status.available': 'Available'
'list.status.disabled': 'Disabled'
'list.status.enabled': 'Enabled'
'list.status.error': 'Error'
'list.status.indexing': 'Indexing'
'list.status.paused': 'Paused'
'list.status.queuing': 'Queuing'
'list.summary.generating': 'Generating...'
'list.summary.generatingSummary': 'Generating summary'
'list.table.header.action': 'ACTION'
'list.table.header.chunkingMode': 'CHUNKING MODE'
'list.table.header.fileName': 'NAME'
'list.table.header.hitCount': 'RETRIEVAL COUNT'
'list.table.header.status': 'STATUS'
'list.table.header.uploadTime': 'UPLOAD TIME'
'list.table.header.words': 'WORDS'
'list.table.name': 'Name'
'list.table.rename': 'Rename'
'list.title': 'Documents'
'metadata.dateTimeFormat': 'MMMM D, YYYY hh:mm A'
'metadata.field.IMChat.chatPartiesGroupName': 'Chat Parties/Group Name'
'metadata.field.IMChat.chatPlatform': 'Chat Platform'
'metadata.field.IMChat.endDate': 'End Date'
'metadata.field.IMChat.fileType': 'File Type'
'metadata.field.IMChat.participants': 'Participants'
'metadata.field.IMChat.startDate': 'Start Date'
'metadata.field.IMChat.topicsKeywords': 'Topics/Keywords'
'metadata.field.book.ISBN': 'ISBN'
'metadata.field.book.author': 'Author'
'metadata.field.book.category': 'Category'
'metadata.field.book.language': 'Language'
'metadata.field.book.publicationDate': 'Publication Date'
'metadata.field.book.publisher': 'Publisher'
'metadata.field.book.title': 'Title'
'metadata.field.businessDocument.author': 'Author'
'metadata.field.businessDocument.creationDate': 'Creation Date'
'metadata.field.businessDocument.departmentTeam': 'Department/Team'
'metadata.field.businessDocument.documentType': 'Document Type'
'metadata.field.businessDocument.lastModifiedDate': 'Last Modified Date'
'metadata.field.businessDocument.title': 'Title'
'metadata.field.github.fileName': 'File Name'
'metadata.field.github.filePath': 'File Path'
'metadata.field.github.lastCommitAuthor': 'Last Commit Author'
'metadata.field.github.lastCommitTime': 'Last Commit Time'
'metadata.field.github.license': 'License'
'metadata.field.github.programmingLang': 'Programming Language'
'metadata.field.github.repoDesc': 'Repo Description'
'metadata.field.github.repoName': 'Repo Name'
'metadata.field.github.repoOwner': 'Repo Owner'
'metadata.field.github.url': 'URL'
'metadata.field.notion.author': 'Author'
'metadata.field.notion.createdTime': 'Created Time'
'metadata.field.notion.description': 'Description'
'metadata.field.notion.language': 'Language'
'metadata.field.notion.lastModifiedTime': 'Last Modified Time'
'metadata.field.notion.tag': 'Tag'
'metadata.field.notion.title': 'Title'
'metadata.field.notion.url': 'URL'
'metadata.field.originInfo.lastUpdateDate': 'Last update date'
'metadata.field.originInfo.originalFileSize': 'Original file size'
'metadata.field.originInfo.originalFilename': 'Original filename'
'metadata.field.originInfo.source': 'Source'
'metadata.field.originInfo.uploadDate': 'Upload date'
'metadata.field.paper.DOI': 'DOI'
'metadata.field.paper.abstract': 'Abstract'
'metadata.field.paper.author': 'Author'
'metadata.field.paper.journalConferenceName': 'Journal/Conference Name'
'metadata.field.paper.language': 'Language'
'metadata.field.paper.publishDate': 'Publish Date'
'metadata.field.paper.title': 'Title'
'metadata.field.paper.topicsKeywords': 'Topics/Keywords'
'metadata.field.paper.volumeIssuePage': 'Volume/Issue/Page'
'metadata.field.personalDocument.author': 'Author'
'metadata.field.personalDocument.creationDate': 'Creation Date'
'metadata.field.personalDocument.documentType': 'Document Type'
'metadata.field.personalDocument.lastModifiedDate': 'Last Modified Date'
'metadata.field.personalDocument.tagsCategory': 'Tags/Category'
'metadata.field.personalDocument.title': 'Title'
'metadata.field.socialMediaPost.authorUsername': 'Author/Username'
'metadata.field.socialMediaPost.platform': 'Platform'
'metadata.field.socialMediaPost.postURL': 'Post URL'
'metadata.field.socialMediaPost.publishDate': 'Publish Date'
'metadata.field.socialMediaPost.topicsTags': 'Topics/Tags'
'metadata.field.technicalParameters.avgParagraphLength': 'Avg. paragraph length'
'metadata.field.technicalParameters.embeddedSpend': 'Embedded spend'
'metadata.field.technicalParameters.embeddingTime': 'Embedding time'
'metadata.field.technicalParameters.hitCount': 'Retrieval count'
'metadata.field.technicalParameters.paragraphs': 'Paragraphs'
'metadata.field.technicalParameters.segmentLength': 'Chunks length'
'metadata.field.technicalParameters.segmentSpecification': 'Chunks specification'
'metadata.field.webPage.authorPublisher': 'Author/Publisher'
'metadata.field.webPage.description': 'Description'
'metadata.field.webPage.language': 'Language'
'metadata.field.webPage.publishDate': 'Publish Date'
'metadata.field.webPage.title': 'Title'
'metadata.field.webPage.topicKeywords': 'Topic/Keywords'
'metadata.field.webPage.url': 'URL'
'metadata.field.wikipediaEntry.editorContributor': 'Editor/Contributor'
'metadata.field.wikipediaEntry.language': 'Language'
'metadata.field.wikipediaEntry.lastEditDate': 'Last Edit Date'
'metadata.field.wikipediaEntry.summaryIntroduction': 'Summary/Introduction'
'metadata.field.wikipediaEntry.title': 'Title'
'metadata.field.wikipediaEntry.webpageURL': 'Webpage URL'
'metadata.languageMap.ar': 'Arabic'
'metadata.languageMap.cs': 'Czech'
'metadata.languageMap.da': 'Danish'
'metadata.languageMap.de': 'German'
'metadata.languageMap.el': 'Greek'
'metadata.languageMap.en': 'English'
'metadata.languageMap.es': 'Spanish'
'metadata.languageMap.fi': 'Finnish'
'metadata.languageMap.fr': 'French'
'metadata.languageMap.he': 'Hebrew'
'metadata.languageMap.hi': 'Hindi'
'metadata.languageMap.hu': 'Hungarian'
'metadata.languageMap.id': 'Indonesian'
'metadata.languageMap.it': 'Italian'
'metadata.languageMap.ja': 'Japanese'
'metadata.languageMap.ko': 'Korean'
'metadata.languageMap.nl': 'Dutch'
'metadata.languageMap.no': 'Norwegian'
'metadata.languageMap.pl': 'Polish'
'metadata.languageMap.pt': 'Portuguese'
'metadata.languageMap.ro': 'Romanian'
'metadata.languageMap.ru': 'Russian'
'metadata.languageMap.sv': 'Swedish'
'metadata.languageMap.th': 'Thai'
'metadata.languageMap.tr': 'Turkish'
'metadata.languageMap.zh': 'Chinese'
'metadata.placeholder.add': 'Add '
'metadata.placeholder.select': 'Select '
'metadata.source.github': 'Sync form Github'
'metadata.source.local_file': 'Local File'
'metadata.source.notion': 'Sync form Notion'
'metadata.source.online_document': 'Online Document'
'metadata.source.upload_file': 'Upload File'
'metadata.source.website_crawl': 'Website Crawl'
'metadata.title': 'Metadata'
'metadata.type.IMChat': 'IM Chat'
'metadata.type.book': 'Book'
'metadata.type.businessDocument': 'Business Document'
'metadata.type.github': 'Sync form Github'
'metadata.type.notion': 'Sync form Notion'
'metadata.type.paper': 'Paper'
'metadata.type.personalDocument': 'Personal Document'
'metadata.type.socialMediaPost': 'Social Media Post'
'metadata.type.technicalParameters': 'Technical Parameters'
'metadata.type.webPage': 'Web Page'
'metadata.type.wikipediaEntry': 'Wikipedia Entry'
'segment.addAnother': 'Add another'
'segment.addChildChunk': 'Add Child Chunk'
'segment.addChunk': 'Add Chunk'
'segment.addKeyWord': 'Add keyword'
'segment.allFilesUploaded': 'All files must be uploaded before saving'
'segment.answerEmpty': 'Answer can not be empty'
'segment.answerPlaceholder': 'Add answer here'
'segment.characters': 'character' | 'characters'
'segment.childChunk': 'Child-Chunk'
'segment.childChunkAdded': '1 child chunk added'
'segment.childChunks': 'CHILD CHUNK' | 'CHILD CHUNKS'
'segment.chunk': 'Chunk'
'segment.chunkAdded': '1 chunk added'
'segment.chunkDetail': 'Chunk Detail'
'segment.chunks': 'CHUNK' | 'CHUNKS'
'segment.clearFilter': 'Clear filter'
'segment.collapseChunks': 'Collapse chunks'
'segment.contentEmpty': 'Content can not be empty'
'segment.contentPlaceholder': 'Add content here'
'segment.dateTimeFormat': 'MM/DD/YYYY HH:mm'
'segment.delete': 'Delete this chunk ?'
'segment.editChildChunk': 'Edit Child Chunk'
'segment.editChunk': 'Edit Chunk'
'segment.edited': 'EDITED'
'segment.editedAt': 'Edited at'
'segment.empty': 'No Chunk found'
'segment.expandChunks': 'Expand chunks'
'segment.hitCount': 'Retrieval count'
'segment.keywordDuplicate': 'The keyword already exists'
'segment.keywordEmpty': 'The keyword cannot be empty'
'segment.keywordError': 'The maximum length of keyword is 20'
'segment.keywords': 'KEYWORDS'
'segment.newChildChunk': 'New Child Chunk'
'segment.newChunk': 'New Chunk'
'segment.parentChunk': 'Parent-Chunk'
'segment.parentChunks': 'PARENT CHUNK' | 'PARENT CHUNKS'
'segment.questionEmpty': 'Question can not be empty'
'segment.questionPlaceholder': 'Add question here'
'segment.regeneratingMessage': 'This may take a moment, please wait...'
'segment.regeneratingTitle': 'Regenerating child chunks'
'segment.regenerationConfirmMessage': 'Regenerating child chunks will overwrite the current child chunks, including edited chunks and newly added chunks. The regeneration cannot be undone.'
'segment.regenerationConfirmTitle': 'Do you want to regenerate child chunks?'
'segment.regenerationSuccessMessage': 'You can close this window.'
'segment.regenerationSuccessTitle': 'Regeneration completed'
'segment.searchResults': 'RESULT' | 'RESULTS' | 'RESULT'
'segment.statusFilterLabel': 'Filter segments by status'
'segment.summary': 'SUMMARY'
'segment.summaryPlaceholder': 'Write a brief summary for better retrieval…'
}
datasetHitTesting: {
chunkDetail: 'Chunk Detail'
dateTimeFormat: 'MM/DD/YYYY hh:mm A'
desc: 'Test the hitting effect of the Knowledge based on the given query text.'
'hit.emptyTip': 'Retrieval Testing results will show here'
'hit.title': '{{num}} Retrieved Chunks'
hitChunks: 'Hit {{num}} child chunks'
'imageUploader.dropZoneTip': 'Drag file here to upload'
'imageUploader.singleChunkAttachmentLimitTooltip': 'The number of single chunk attachments cannot exceed {{limit}}'
'imageUploader.tip': 'Upload or drop images (Max {{batchCount}}, {{size}}MB each)'
'imageUploader.tooltip': 'Upload images (Max {{batchCount}}, {{size}}MB each)'
'input.countWarning': 'Up to 200 characters.'
'input.placeholder': 'Please enter a text, a short declarative sentence is recommended.'
'input.testing': 'Test'
'input.title': 'Source text'
keyword: 'Keywords'
noRecentTip: 'No recent query results here'
open: 'Open'
records: 'Records'
settingTitle: 'Retrieval Setting'
'table.header.queryContent': 'Query Content'
'table.header.source': 'Source'
'table.header.time': 'Time'
title: 'Retrieval Test'
}
datasetPipeline: {
'addDocuments.characters': 'characters'
'addDocuments.selectOnlineDocumentTip': 'Process up to {{count}} pages'
'addDocuments.selectOnlineDriveTip': 'Process up to {{count}} files, maximum {{fileSize}} MB each'
'addDocuments.stepOne.preview': 'Preview'
'addDocuments.stepThree.learnMore': 'Learn more'
'addDocuments.stepTwo.chunkSettings': 'Chunk Settings'
'addDocuments.stepTwo.previewChunks': 'Preview Chunks'
'addDocuments.steps.chooseDatasource': 'Choose a Data Source'
'addDocuments.steps.processDocuments': 'Process Documents'
'addDocuments.steps.processingDocuments': 'Processing Documents'
'addDocuments.title': 'Add Documents'
configurationTip: 'Configure {{pluginName}}'
'conversion.confirm.content': "This action is permanent. You won't be able to revert to the previous method.Please confirm to convert."
'conversion.confirm.title': 'Confirmation'
'conversion.descriptionChunk1': 'You can now convert your existing knowledge base to use the Knowledge Pipeline for document processing'
'conversion.descriptionChunk2': ' — a more open and flexible approach with access to integrations from the Marketplace. This will apply the new processing method to all future documents.'
'conversion.errorMessage': 'Failed to convert the dataset to a pipeline'
'conversion.successMessage': 'Successfully converted the dataset to a pipeline'
'conversion.title': 'Convert to Knowledge Pipeline'
'conversion.warning': 'This action cannot be undone.'
'creation.backToKnowledge': 'Back to Knowledge'
'creation.caution': 'Caution'
'creation.createFromScratch.description': 'Create a custom pipeline from scratch with full control over data processing and structure.'
'creation.createFromScratch.title': 'Blank knowledge pipeline'
'creation.errorTip': 'Failed to create a Knowledge Base'
'creation.importDSL': 'Import from a DSL file'
'creation.successTip': 'Successfully created a Knowledge Base'
'deletePipeline.content': 'Deleting the pipeline template is irreversible.'
'deletePipeline.title': 'Are you sure to delete this pipeline template?'
'details.createdBy': 'By {{author}}'
'details.structure': 'Structure'
'details.structureTooltip': 'Chunk Structure determines how documents are split and indexed—offering General, Parent-Child, and Q&A modes—and is unique to each knowledge base.'
'documentSettings.title': 'Document Settings'
editPipelineInfo: 'Edit pipeline info'
editPipelineInfoNameRequired: 'Please enter a name for the Knowledge Base.'
'exportDSL.errorTip': 'Failed to export pipeline DSL'
'exportDSL.successTip': 'Export pipeline DSL successfully'
inputField: 'Input Field'
'inputFieldPanel.addInputField': 'Add Input Field'
'inputFieldPanel.description': 'User input fields are used to define and collect variables required during the pipeline execution process. Users can customize the field type and flexibly configure the input value to meet the needs of different data sources or document processing steps.'
'inputFieldPanel.editInputField': 'Edit Input Field'
'inputFieldPanel.error.variableDuplicate': 'Variable name already exists. Please choose a different name.'
'inputFieldPanel.globalInputs.title': 'Global Inputs for All Entrances'
'inputFieldPanel.globalInputs.tooltip': 'Global Inputs are shared across all nodes. Users will need to fill them in when selecting any data source. For example, fields like delimiter and maximum chunk length can be uniformly applied across multiple data sources. Only input fields referenced by Data Source variables appear in the first step (Data Source). All other fields show up in the second step (Process Documents).'
'inputFieldPanel.preview.stepOneTitle': 'Data Source'
'inputFieldPanel.preview.stepTwoTitle': 'Process Documents'
'inputFieldPanel.title': 'User Input Fields'
'inputFieldPanel.uniqueInputs.title': 'Unique Inputs for Each Entrance'
'inputFieldPanel.uniqueInputs.tooltip': "Unique Inputs are only accessible to the selected data source and its downstream nodes. Users won't need to fill it in when choosing other data sources. Only input fields referenced by data source variables will appear in the first step(Data Source). All other fields will be shown in the second step(Process Documents)."
knowledgeDescription: 'Knowledge description'
knowledgeDescriptionPlaceholder: 'Describe what is in this Knowledge Base. A detailed description allows AI to access the content of the dataset more accurately. If empty, Dify will use the default hit strategy. (Optional)'
knowledgeNameAndIconPlaceholder: 'Please enter the name of the Knowledge Base'
'onlineDocument.pageSelectorTitle': '{{name}} pages'
'onlineDrive.breadcrumbs.allBuckets': 'All Cloud Storage Buckets'
'onlineDrive.breadcrumbs.allFiles': 'All Files'
'onlineDrive.breadcrumbs.searchPlaceholder': 'Search files...'
'onlineDrive.breadcrumbs.searchResult': 'Find {{searchResultsLength}} items in "{{folderName}}" folder'
'onlineDrive.emptyFolder': 'This folder is empty'
'onlineDrive.emptySearchResult': 'No items were found'
'onlineDrive.notSupportedFileType': 'This file type is not supported'
'onlineDrive.resetKeywords': 'Reset keywords'
'operations.backToDataSource': 'Back to Data Source'
'operations.choose': 'Choose'
'operations.convert': 'Convert'
'operations.dataSource': 'Data Source'
'operations.details': 'Details'
'operations.editInfo': 'Edit info'
'operations.exportPipeline': 'Export Pipeline'
'operations.preview': 'Preview'
'operations.process': 'Process'
'operations.saveAndProcess': 'Save & Process'
'operations.useTemplate': 'Use this Knowledge Pipeline'
pipelineNameAndIcon: 'Pipeline name & icon'
'publishPipeline.error.message': 'Failed to Publish Knowledge Pipeline'
'publishPipeline.success.message': 'Knowledge Pipeline Published'
'publishPipeline.success.tip': '<CustomLink>Go to Documents</CustomLink> to add or manage documents.'
'publishTemplate.error.message': 'Failed to Publish Pipeline Template'
'publishTemplate.success.learnMore': 'Learn more'
'publishTemplate.success.message': 'Pipeline Template Published'
'publishTemplate.success.tip': 'You can use this template on the creation page.'
'templates.customized': 'Customized'
'testRun.steps.dataSource': 'Data Source'
'testRun.steps.documentProcessing': 'Document Processing'
'testRun.title': 'Test Run'
'testRun.tooltip': 'In test run mode, only one document is allowed to be imported at a time for easier debugging and observation.'
}
datasetSettings: {
desc: 'Here you can modify the properties and retrieval settings of this Knowledge.'
'form.changeIcon': 'Change knowledge icon'
'form.chunkStructure.description': ' about Chunk Structure.'
'form.chunkStructure.learnMore': 'Learn more'
'form.chunkStructure.title': 'Chunk Structure'
'form.desc': 'Description'
'form.descPlaceholder': 'Describe what is in this data set. A detailed description allows AI to access the content of the data set in a timely manner. If empty, Dify will use the default hit strategy.'
'form.embeddingModel': 'Embedding Model'
'form.embeddingModelTip': 'Change the embedded model, please go to '
'form.embeddingModelTipLink': 'Settings'
'form.externalKnowledgeAPI': 'External Knowledge API'
'form.externalKnowledgeID': 'External Knowledge ID'
'form.indexMethod': 'Index Method'
'form.indexMethodChangeToEconomyDisabledTip': 'Not available for downgrading from HQ to ECO'
'form.indexMethodEconomy': 'Economical'
'form.indexMethodEconomyTip': 'Using {{count}} keywords per chunk for retrieval, no tokens are consumed at the expense of reduced retrieval accuracy.'
'form.indexMethodHighQualityTip': 'Calling the embedding model to process documents for more precise retrieval helps LLM generate high-quality answers.'
'form.me': '(You)'
'form.multimodalRetrievalGuidance.createDescription': 'If your knowledge includes screenshots, product images, manual illustrations, or charts, choose an Embedding model with a Vision label. Text-only models mainly process text content and may not include images in retrieval.'
'form.multimodalRetrievalGuidance.createTitle': 'Let images participate in retrieval'
'form.multimodalRetrievalGuidance.dismiss': 'Dismiss guidance'
'form.multimodalRetrievalGuidance.helpDescription': 'about multimodal retrieval.'
'form.multimodalRetrievalGuidance.helpLink': 'Learn more'
'form.multimodalRetrievalGuidance.pipelineDescription': 'If your knowledge includes screenshots, product images, manual illustrations, or charts, choose an Embedding model with a Vision label. Text-only models mainly process text content and may not include images in retrieval.'
'form.multimodalRetrievalGuidance.pipelineTitle': 'Let images participate in retrieval'
'form.multimodalRetrievalGuidance.settingsDescription': 'If your knowledge includes screenshots, product images, manual illustrations, or charts, choose an Embedding model with a Vision label. Text-only models mainly process text content and may not include images in retrieval.'
'form.multimodalRetrievalGuidance.settingsTitle': 'Let images participate in retrieval'
'form.name': 'Knowledge Name'
'form.nameAndIcon': 'Name & Icon'
'form.nameError': 'Name cannot be empty'
'form.namePlaceholder': 'Please enter the Knowledge name'
'form.numberOfKeywords': 'Number of Keywords'
'form.onSearchResults': 'No members match your search query.\nTry your search again.'
'form.permissions': 'Permissions'
'form.permissionsAccessConfig': 'Go to access configuration'
'form.permissionsAllMember': 'All team members'
'form.permissionsInvitedMembers': 'Partial team members'
'form.permissionsOnlyMe': 'Only me'
'form.retrievalSetting.description': ' about retrieval method.'
'form.retrievalSetting.learnMore': 'Learn more'
'form.retrievalSetting.longDescription': ' about retrieval method, you can change this at any time in the Knowledge settings.'
'form.retrievalSetting.method': 'Retrieval Method'
'form.retrievalSetting.multiModalTip': 'When embedding model supports multi-modal, please select a multi-modal rerank model for better performance.'
'form.retrievalSetting.title': 'Retrieval Setting'
'form.save': 'Save'
'form.summaryAutoGen': 'Summary Auto-Gen'
'form.summaryAutoGenEnableTip': 'Once enabled, summaries will be generated automatically for newly added documents. Existing documents can still be summarized manually.'
'form.summaryAutoGenTip': 'Summaries are automatically generated for newly added documents. Existing documents can still be summarized manually.'
'form.summaryInstructions': 'Instructions'
'form.summaryInstructionsPlaceholder': 'Describe the rules or style for auto-generated summaries…'
'form.summaryModel': 'Summary Model'
'form.upgradeHighQualityTip': 'Once upgrading to High Quality mode, reverting to Economical mode is not available'
title: 'Knowledge settings'
}
deployments: {
'card.notDeployed': 'Not deployed'
'common.loadFailed': 'Failed to load. Try again later.'
'deployDrawer.bindingOptionsFailed': 'Failed to load credential options.'
'deployDrawer.bindingSelectionHint': 'Choose the credentials used by this deployment.'
'deployDrawer.deploying': 'Deploying...'
'deployDrawer.envVarSource.ariaLabel': 'Select the variable value source for {{key}}'
'deployDrawer.envVarSource.lastDeployment': 'Last deployed value'
'deployDrawer.envVarSource.literal': 'Custom value'
'deployDrawer.envVarType.number': 'Number'
'deployDrawer.envVarType.secret': 'Secret'
'deployDrawer.envVarType.string': 'String'
'deployDrawer.envVars': 'Environment Variables'
'deployDrawer.noCredentialCandidates': 'No available credentials.'
'deployDrawer.noNewEnvironmentAvailable': 'All available environments already have a deployment.'
'deployDrawer.runtimeCredentials': 'Credentials'
'deployDrawer.selectCredential': 'Select a credential'
'deployTab.col.actions': 'Actions'
'deployTab.col.environment': 'Environment'
'deployTab.col.status': 'Status'
'deployTab.confirmUndeploy': 'Undeploy'
'deployTab.moreActions': 'More actions'
'deployTab.redeploy': 'Redeploy'
'deployTab.undeploy': 'Undeploy'
'deployTab.undeployUnavailable': 'Cannot undeploy because the current version is unavailable.'
'health.ENVIRONMENT_STATUS_FAILED': 'Unavailable'
'list.emptyTitle': 'No deployments yet'
'overview.chip.latest': 'latest'
'status.RUNTIME_INSTANCE_STATUS_DEPLOYING': 'Deploying'
'status.RUNTIME_INSTANCE_STATUS_INVALID': 'Invalid'
'status.RUNTIME_INSTANCE_STATUS_READY': 'Running'
'status.RUNTIME_INSTANCE_STATUS_UNDEPLOYED': 'Not deployed'
'status.RUNTIME_INSTANCE_STATUS_UNDEPLOYING': 'Undeploying'
'status.RUNTIME_INSTANCE_STATUS_UNSPECIFIED': 'Unknown'
'studio.accessControl.addressCount': '{{count}} address' | '{{count}} addresses'
'studio.accessControl.applyTo': 'Apply to'
'studio.accessControl.applyToHelp': 'Choose which access points this policy protects.'
'studio.accessControl.applyToHelpSelected': 'Choose which access points this policy protects.'
'studio.accessControl.chipOff': 'Off'
'studio.accessControl.chipOn': 'ON'
'studio.accessControl.chipPartial': '{{n}} of {{m}}'
'studio.accessControl.chipPaused': 'Pause'
'studio.accessControl.createIpPolicy': 'Create an IP policy'
'studio.accessControl.description': 'Control access to this app by applying an IP policy.'
'studio.accessControl.downgradeDescription': 'Access control is available on Professional and Team plans.'
'studio.accessControl.downgradeTitle': 'This app is no longer protected'
'studio.accessControl.emptyPoliciesReadOnly': 'Ask a workspace owner or admin to create one.'
'studio.accessControl.emptyPoliciesTitle': 'No IP policies in this workspace yet'
'studio.accessControl.entryLabel': 'Access Control'
'studio.accessControl.ipPolicy': 'IP Policy'
'studio.accessControl.lockoutWarning': "Your IP ({{ip}}) isn't in this policy. You may lose access."
'studio.accessControl.manageIpPolicies': 'Manage IP policies'
'studio.accessControl.notEnabled': 'Not protected'
'studio.accessControl.pausedDescription': 'Paused — {{name}} is configured but not enforcing'
'studio.accessControl.paywallDescription': 'Only requests from the IP policies you choose can reach this app’s access points. Available on Professional and Team plans.'
'studio.accessControl.paywallTitle': 'Restrict this app to IP addresses you trust'
'studio.accessControl.policyChanged': 'This policy changed. Review the warning before saving again.'
'studio.accessControl.policySummaryMany':
| 'Allows {{first}}, {{second}} and {{count}} more address'
| 'Allows {{first}}, {{second}} and {{count}} more addresses'
'studio.accessControl.policySummaryNone': 'Allows no addresses'
'studio.accessControl.policySummaryOne': 'Allows {{address}}'
'studio.accessControl.policySummaryTwo': 'Allows {{first}} and {{second}}'
'studio.accessControl.previewAppName': 'Code Companion'
'studio.accessControl.previewCaption': "This app is only available on your organization's network."
'studio.accessControl.proBadge': 'PRO'
'studio.accessControl.protectingAll': 'Protecting all {{count}} access points in service.'
'studio.accessControl.protectingPartial': 'Protecting {{n}} of {{m}} access points in service.'
'studio.accessControl.protectsCoverage': 'Protects {{n}} of {{m}} access points'
'studio.accessControl.readyToResume': 'Ready to resume'
'studio.accessControl.restrictByIp': 'Restrict by IP address'
'studio.accessControl.restrictedTo': 'Restricted to {{name}}'
'studio.accessControl.saveAnyway': 'Save anyway'
'studio.accessControl.saveWithoutOwnIp': 'Save without your own IP?'
'studio.accessControl.selectAccessPoint': 'Please select at least one access point.'
'studio.accessControl.selectPolicy': 'Select an IP policy'
'studio.accessControl.selectPolicyRequired': 'Please select an IP policy.'
'studio.accessControl.tooltipAllProtected': 'All {{total}} access points are protected'
'studio.accessControl.tooltipDowngraded': 'No longer protected — available on Professional and Team plans'
'studio.accessControl.tooltipOff': 'Not set up'
'studio.accessControl.tooltipPaused': 'Configured but paused'
'studio.accessControl.tooltipPro': 'Available on Professional and Team plans'
'studio.accessControl.tooltipProtected': '{{n}} of {{total}} access points are protected'
'studio.accessControl.turnOffConfirm': 'Turn off'
'studio.accessControl.turnOffDescription': 'All access points will be reachable from any IP address. Your configuration will be kept.'
'studio.accessControl.turnOffTitle': 'Turn off IP access control?'
'studio.accessControl.turnOn': 'Turn on Access Control'
'studio.accessControl.viewIpPolicies': 'View IP policies'
'studio.accessPoint.apiDescription': 'Integrate the app into your services over HTTP'
'studio.accessPoint.description': 'All the ways this app can be reached. Access points match the running version only.'
'studio.accessPoint.embedIntoSite': 'Embed Into Site'
'studio.accessPoint.goToPublish': 'Go to publish'
'studio.accessPoint.mcpDescription': 'Expose the app as a tool for agents and AI apps'
'studio.accessPoint.noPublishedDescription': 'Publish your workflow to make it reachable through the web app, API, MCP and triggers.'
'studio.accessPoint.noPublishedTitle': 'No published versions yet'
'studio.accessPoint.notSupported': 'Not supported'
'studio.accessPoint.open': 'Open'
'studio.accessPoint.triggerDescription': 'Trigger nodes in the running version'
'studio.accessPoint.triggerEnabledCount': '{{enabled}}/{{total}} enabled'
'studio.accessPoint.triggerExclusiveNotice': 'Web app, API access, and MCP server are unavailable while triggers are used.'
'studio.accessPoint.unsupportedInDeployedEnvironment': 'Available in the Built-in environment only.'
'studio.accessPoint.webAppDescription': 'Use the app through a hosted web page'
'studio.accessPoints': 'Access points'
'studio.activity.deploy': 'Deploy {{target}}'
'studio.activity.deployFailed': 'Deploy {{target}} failed'
'studio.activity.deploySucceeded': 'Deploy {{target}} succeeded'
'studio.activity.meta': 'by {{name}} · {{time}}'
'studio.allVersions': 'All versions'
'studio.builtInDescription': 'Always runs the latest published version'
'studio.builtInTitle': 'Built-in Environment'
'studio.changeVersion': 'Change version'
'studio.chooseVersionToDeploy': 'Choose a version to deploy'
'studio.current': 'Current'
'studio.deployAnotherVersion': 'Deploy another version'
'studio.deployConfiguration': 'Deploy configuration'
'studio.deployLatest': 'Deploy latest'
'studio.description': "Manage this app's deployments across environments. More environments can be created in the enterprise Dashboard."
'studio.emptyDescription': 'Deploy a published version to an environment, and it will show up here.'
'studio.environmentVariablesDescription': "Use the value from the version you're deploying, keep the last deployed value, or enter a custom one."
'studio.environments': 'Environments'
'studio.environmentsInUse': '{{used}} of {{total}} environments in use'
'studio.lastActivity': 'Last activity'
'studio.latestVersionLoadFailed': 'Failed to get the latest version.'
'studio.liveVersion': 'Live version'
'studio.moreEnvironments': 'More environments'
'studio.noCredentialsYet': 'No credentials yet'
'studio.noCredentialsYetDescription': 'Add credentials in Integrations or node settings'
'studio.precheck.description': 'It contains node types that are not yet supported:'
'studio.precheck.from': 'From'
'studio.precheck.nodeCount': '{{count}} node' | '{{count}} nodes'
'studio.precheck.supportMessage': 'Support for these node types is coming in a future release.'
'studio.precheck.title': "This version can't be deployed to this environment"
'studio.publisher.deployingVersion': 'Deploying: {{version}}'
'studio.publisher.noPublishedDescription': 'Publish your draft to deploy it here.'
'studio.publisher.notDeployedYet': 'Not deployed yet'
'studio.retryVersion': 'Retry {{version}}'
'studio.undeployConfirmDesc': 'The app will stop running in this environment, and all of its access points will become unavailable.'
'studio.undeployConfirmTitle': 'Undeploy {{versionName}} from {{envName}}'
'studio.updatedAtBy': 'Updated at {{time}} by {{name}}'
'studio.versionValue': 'Version value'
'studio.versionsBehind': '{{count}} version behind' | '{{count}} versions behind'
'versions.deployTo': 'Deploy to {{name}}'
}
deviceFlow: {
'approveError.codeInvalid': 'This code is no longer valid.'
'approveError.codeMismatch': 'This code does not match the active session. Run difyctl auth login again.'
'approveError.codeResolved': 'This code was already approved or denied.'
'approveError.conflict': 'This code is no longer in a state we can approve.'
'approveError.default': 'Could not complete the request. Please try again.'
'approveError.flowExpired': 'The flow expired before approval completed. Run difyctl auth login again.'
'approveError.inProgress': 'An approval is already in progress for this code.'
'approveError.rateLimited': 'Too many attempts. Wait a moment and try again.'
'approveError.serverError': 'Something went wrong on our side. Try again in a moment.'
'approveError.sessionConsumed': 'This session was already used. Run difyctl auth login again.'
'approveError.sessionExpired': 'Your session has expired. Run difyctl auth login again to start over.'
'approveError.verifyFailed': 'Could not verify the request. Refresh the page and try again.'
'authorize.accountSubtitle': "difyctl is requesting access. If you didn't start this from your terminal, click Cancel."
'authorize.approve': 'Authorize'
'authorize.identityProvider': 'Identity provider:'
'authorize.loadingSession': 'Loading session…'
'authorize.sessionInvalidBody': 'Run <codeTag>difyctl auth login</codeTag> again to start a new sign-in.'
'authorize.sessionInvalidTitle': 'This session is no longer valid'
'authorize.ssoSubtitle': "difyctl is requesting access via SSO. If you didn't start this from your terminal, close this tab."
'authorize.title': 'Authorize difyctl'
'authorize.viaSSO': 'via SSO'
'authorize.workspace': 'Workspace:'
'chooser.signInAccount': 'Sign in with Dify account'
'chooser.signInSSO': 'Sign in with SSO'
'chooser.subtitle': 'Code <codeTag>{{code}}</codeTag> is valid. Choose how to sign in.'
'chooser.title': 'Sign in to authorize'
'codeEntry.codeAriaLabel': 'one-time code'
'codeEntry.continue': 'Continue'
'codeEntry.subtitle': 'Enter the code shown in your terminal.'
'codeEntry.title': 'Authorize difyctl'
'errorExpired.body': 'Expired or already used. Run <codeTag>difyctl auth login</codeTag> to get a new code.'
'errorExpired.title': 'Code no longer valid'
'errorExpired.tryDifferentCode': '← Try a different code'
'errorLookupFailed.body': 'Something went wrong on our side. Try again in a moment.'
'errorLookupFailed.title': 'Could not verify the code'
'errorRateLimited.body': 'Wait a moment and try again.'
'errorRateLimited.title': 'Too many attempts'
'errorSso.backToLoginOptions': '← Back to login options'
'errorSso.title': 'Sign-in could not be completed'
'ssoError.default': 'Single sign-on could not be completed. Try again.'
'ssoError.emailBelongsToDifyAccount': 'This identity is linked to a Dify account. Use “Sign in with Dify account” instead.'
'success.goToConsole': 'Go to Dify console →'
'success.subtitle': 'Return to your terminal to continue.'
'success.title': "You're signed in"
tryAgain: '← Try again'
}
education: {
activateFailed: "We couldn't activate your education discount. Your current Education Verified status may still be active, or this email is no longer eligible."
'applied.activeSubscription.description': 'You have an active subscription. You can use the education discount after your subscription expires. Confirm your subscription in <stripeLink>Stripe</stripeLink>.'
'applied.noPaymentPermission.description': "You don't have payment permission in this workspace. Please switch to a workspace where you can manage billing to use the education discount."
'applied.noPaymentPermission.returnHome': 'Back to Dify'
'applied.step1.description': "You've successfully applied for the education discount."
'applied.step2.description': 'Select the workspace you want to use the education discount with.'
currentSigned: 'CURRENTLY SIGNED IN AS'
'educationPricingConfirm.cancel': 'Keep current plan'
'educationPricingConfirm.continue': 'Switch to Professional Annual'
'educationPricingConfirm.description': "The education discount applies to the Professional annual plan only. Keeping your current plan won't include the discount."
'educationPricingConfirm.title': "Your selected plan doesn't support the education discount"
emailLabel: 'Your current email'
'form.schoolName.noResults': 'No matching schools found. You can still enter the official school name.'
'form.schoolName.placeholder': 'Enter the official, unabbreviated name of your school'
'form.schoolName.title': 'Your School Name'
'form.schoolRole.option.administrator': 'School Administrator'
'form.schoolRole.option.student': 'Student'
'form.schoolRole.option.teacher': 'Teacher'
'form.schoolRole.title': 'Your School Role'
'form.terms.desc.and': 'and'
'form.terms.desc.end': '. By submitting:'
'form.terms.desc.front': 'Your information and use of Education Verified status are subject to our'
'form.terms.desc.privacyPolicy': 'Privacy Policy'
'form.terms.desc.termsOfService': 'Terms of Service'
'form.terms.option.age': 'I confirm I am at least 18 years old'
'form.terms.option.inSchool': 'I confirm I am enrolled or employed at the institution provided. Dify may request proof of enrollment/employment. If I misrepresent my eligibility, I agree to pay any fees initially waived based on my education status.'
'form.terms.option.personalUse': 'I confirm that my Education Verified status and all associated benefits, including discounts, coupons, and credits, are for my personal use only. I will not sell, transfer, share, sublicense, or use them to provide paid access to Dify services to any third party.'
'form.terms.title': 'Terms & Agreements'
learn: 'Learn how to get education verified'
'notice.action.dismiss': 'Dismiss'
'notice.action.reVerify': 'Re-verify'
'notice.action.upgrade': 'Upgrade'
'notice.alreadyGraduated.expired': 'Feel free to upgrade anytime to get full access to paid features.'
'notice.alreadyGraduated.isAboutToExpire': "Your current subscription will still remain active. When it ends, you'll be moved to the Sandbox plan, or you can upgrade anytime to restore full access to paid features."
'notice.alreadyGraduated.title': 'Already graduated?'
'notice.dateFormat': 'MM/DD/YYYY'
'notice.expired.summary.line1': 'You can still access and use Dify. '
'notice.expired.summary.line2': "However, you're no longer eligible for new education discount coupons."
'notice.expired.title': 'Your education status has expired'
'notice.isAboutToExpire.summary': "Don't worry — this won't affect your current subscription, but you won't get the education discount when it renews unless you verify your status again."
'notice.isAboutToExpire.title': 'Your education status will expire on {{date}}'
'notice.stillInEducation.expired': "Re-verify now to get a new coupon for the upcoming academic year. We'll add it to your account and you can use it for the next upgrade."
'notice.stillInEducation.isAboutToExpire': "Re-verify now to get a new coupon for the upcoming academic year. It'll be saved to your account and ready to use at your next renewal."
'notice.stillInEducation.title': 'Still in education?'
planNotSupportEducationDiscount: 'Not eligible for education pricing'
rejectContent: 'Unfortunately, you are not eligible for Education Verified status and therefore cannot receive the exclusive 100% coupon for the Dify Professional Plan if you use this email address.'
rejectTitle: 'Your Dify Educational Verification Has Been Rejected'
submit: 'Submit'
submitError: 'Form submission failed. Please try again later.'
toVerified: 'Get Education Verified'
'toVerifiedTip.coupon': 'exclusive 100% coupon'
'toVerifiedTip.end': 'for the Dify Professional Plan.'
'toVerifiedTip.front': 'You are now eligible for Education Verified status. Please enter your education information below to complete the process and receive an'
tooManyAttempts: 'Too many attempts. Please try again later.'
useEducationDiscount: 'Use education discount'
verifyFailed: "We couldn't verify your education status. If you verified recently, your current Education Verified status may still be active. Otherwise, please try again later."
}
explore: {
'appCard.try': 'Details'
'appCustomize.nameRequired': 'App name is required'
'appCustomize.subTitle': 'App icon & name'
'appCustomize.title': 'Create app from {{name}}'
'apps.allCategories': 'All'
'apps.description': 'Ready-to-use templates from the community and Dify team.'
'apps.resultNum': '{{num}} results'
'apps.title': 'Templates'
'apps.viewMore': 'View more'
'banner.carouselLabel': 'Featured content'
'banner.greeting': 'Welcome back, {{name}}👋'
'banner.startRotation': 'Start slide rotation'
'banner.stopRotation': 'Stop slide rotation'
'banner.tagline': 'What if… this is where your next idea begins.'
'banner.viewMore': 'VIEW MORE'
'category.Agent': 'Agent'
'category.Assistant': 'Assistant'
'category.Entertainment': 'Entertainment'
'category.HR': 'HR'
'category.Programming': 'Programming'
'category.Recommended': 'Recommended'
'category.Translate': 'Translate'
'category.Workflow': 'Workflow'
'category.Writing': 'Writing'
'continueWork.editedAt': 'Edited {{time}}'
'continueWork.exploreStudio': 'Explore Studio'
'continueWork.title': 'Recents'
'learnDify.description': "Follow the path - or jump to whichever step you're ready for."
'learnDify.hide': 'Hide'
'learnDify.title': 'Learn Dify'
'sidebar.action.delete': 'Delete'
'sidebar.action.pin': 'Pin'
'sidebar.action.rename': 'Rename'
'sidebar.action.unpin': 'Unpin'
'sidebar.webApps': 'Web apps'
'tryApp.agentConfiguration': 'Agent Configuration'
'tryApp.category': 'Category'
'tryApp.createFromSampleApp': 'Create from this sample app'
'tryApp.included': 'Included'
'tryApp.loadError': 'We couldn’t load this template'
'tryApp.requirements': 'Requirements'
'tryApp.retrying': 'Retrying…'
'tryApp.tabHeader.detail': 'Orchestration Details'
'tryApp.tabHeader.try': 'Try it'
'tryApp.tryInfo': 'This is a sample app with limited trial messages. To keep using it, click “Create from this sample app” and set it up!'
}
fileUpload: {
'feature.audioUpload.description': 'Enable Audio will allow the model to process audio files for transcription and analysis.'
'feature.audioUpload.title': 'Audio'
'feature.documentUpload.description': 'Enable Document will allows the model to take in documents and answer questions about them.'
'feature.documentUpload.title': 'Document'
'feature.fileUpload.description': 'The chat input box allows uploading of images, documents, and other files.'
'feature.fileUpload.modalTitle': 'File Upload Setting'
'feature.fileUpload.numberLimit': 'Max uploads'
'feature.fileUpload.supportedTypes': 'Support File Types'
'feature.fileUpload.title': 'File Upload'
'feature.imageUpload.description': 'Allow uploading images.'
'feature.imageUpload.modalTitle': 'Image Upload Setting'
'feature.imageUpload.numberLimit': 'Max uploads'
'feature.imageUpload.supportedTypes': 'Support File Types'
'feature.imageUpload.title': 'Image Upload'
'vision.description': 'Enable Vision will allows the model to take in images and answer questions about them. '
'vision.name': 'Vision'
'vision.onlySupportVisionModelTip': 'Only supports vision models'
'vision.visionSettings.both': 'Both'
'vision.visionSettings.high': 'High'
'vision.visionSettings.localUpload': 'Local Upload'
'vision.visionSettings.low': 'Low'
'vision.visionSettings.resolution': 'Resolution'
'vision.visionSettings.resolutionTooltip': 'low res will allow model receive a low-res 512 x 512 version of the image, and represent the image with a budget of 65 tokens. This allows the API to return faster responses and consume fewer input tokens for use cases that do not require high detail.\nhigh res will first allows the model to see the low res image and then creates detailed crops of input images as 512px squares based on the input image size. Each of the detailed crops uses twice the token budget for a total of 129 tokens.'
'vision.visionSettings.title': 'Vision Settings'
'vision.visionSettings.uploadLimit': 'Upload Limit'
'vision.visionSettings.uploadMethod': 'Upload Method'
'vision.visionSettings.url': 'URL'
}
knowledgeCitation: {
documentLoadErrorDescription: "We couldn't load this document. Try again."
documentNotFoundDescription: 'This document may have been removed, or you may not have access.'
}
knowledgeCreate: {
addAndProcess: 'Start processing'
crawlPreview: 'Crawl preview'
createAndProcess: 'Create and process documents'
createFailed: "We couldn't create this Agent Knowledge Base. Check your access and try again."
createTitle: 'Create Agent Knowledge Base'
description: 'Description'
descriptionHelp: 'A clear description helps apps decide when to search this Agent Knowledge Base.'
descriptionPlaceholder: 'e.g. Refund policy, shipping FAQs, and escalation steps — use for customer support questions'
illustrationHeadline: 'Connect your content once — every app answers with the freshest knowledge.'
modelPermissionDenied: 'No permission to use this model'
modelSettings: 'Model settings'
modelSettingsDescription: 'Use the workspace defaults, or choose models for this knowledge base.'
modelUnavailable: 'This model is unavailable ({{reason}}). Select another model or check the provider settings.'
modelsLoadFailed: 'Model settings could not be loaded. Retry, or select an available model.'
modelsNeedAttention: 'Check the model settings before creating the knowledge base.'
namePlaceholder: 'e.g. Customer Support Handbook'
nameRequired: 'Enter an Agent Knowledge Base name.'
retryRemainingFiles: 'Retry remaining files'
selectedFiles: 'Selected files ({{valid}} of {{total}} valid)'
startWith: 'Start with'
startWithHelp: 'You can add more Sources or Documents anytime.'
uploadCompleted: 'Added'
uploadDocuments: 'Upload documents'
uploadDropZoneTitle: 'Drag and drop files, or browse'
uploadFilesDescription: 'Add files from your computer. Documents are processed after the knowledge base is created.'
uploadingFiles: 'Uploading…'
}
knowledgeDocuments: {
allDocumentStatuses: 'All status'
averageChunkLength: 'Average chunk length'
averageChunkLengthValue: '{{value}} characters'
bulkDocumentActions: 'Bulk document actions'
cancelDocumentReindex: 'Cancel re-index'
chunkHeading: 'Chunk {{position}}'
clearDocumentSelection: 'Clear document selection'
documentActions: 'Actions for {{name}}'
documentActionsUnavailable: "Document actions aren't available for this Agent Knowledge Base yet."
documentChunksEmpty: 'No chunks are available for this revision yet.'
documentChunksLoadError: "We couldn't load chunks for this revision."
documentChunksLoadMoreError: "We couldn't load more chunks. Try again."
documentContents: 'Contents'
documentFilterLabel: 'Filter documents by status'
documentImageAlt: 'Extracted document image'
documentImageUnavailable: 'This image could not be displayed.'
documentImages: 'Document images'
documentLoadErrorTitle: "Document couldn't load"
documentNotFoundTitle: 'Document not found'
documentReindexFailed: 'Re-indexing failed. The last ready revision remains available.'
documentReindexStatus: 'Re-indexing this document — the current index keeps serving until the new one is ready.'
documentRevision: 'Revision'
documentRevisionMissingDescription: "This document doesn't have a ready revision yet. Check back after processing finishes."
documentRevisionMissingTitle: 'No revision available'
documentRevisionsLoadError: "We couldn't load revision history. The current revision remains available."
documentSelectionLimit: 'Select up to {{max}} documents to re-index or remove.'
documentSummary: 'Summary'
'documentUploadExclusion.more': 'and {{count}} more'
documentUploadIncomplete: '{{completed}} files added; {{remaining}} not added. {{reason}}'
documentUploadPartial: '{{accepted}} documents started; {{excluded}} could not be added: {{details}}'
documentUploadRejected: 'No documents were accepted: {{details}}'
documentUploadStarted: 'Document processing started.'
documentsDropHint: 'or drop PDF, DOCX, Markdown, HTML, CSV, JSONL, XLSX, TXT to upload'
documentsErrorTitle: "Documents couldn't load"
documentsPermissionTitle: 'Documents are restricted'
documentsReindexFailed: "We couldn't start re-indexing. Try again."
documentsReindexStarted: 'Re-indexing started.'
documentsRemovePartial: "{{removed}} documents removed; {{rejected}} couldn't be removed and stay selected."
downloadDocuments: 'Download'
dropFilesHere: 'Drop files here'
emptyChunk: 'Empty chunk'
indexInformation: 'Index'
lastIndexed: 'Last indexed'
lastReadyRevisionHint: 'Failed processing never interrupts retrieval — the last ready revision stays available in the content index.'
manualUpload: 'Manual upload'
noMatchingDocuments: 'No documents match this search.'
parentChildChunkCount: '{{parentCount}} parents / {{childCount}} children'
partialDocumentResults: 'More documents may match. Load more to continue searching.'
reindexDocument: 'Re-index'
retrievalCountValue: '{{value}} in last 7 days'
retryReindexDocument: 'Re-index again'
searchDocuments: 'Search documents'
selectAllDocuments: 'Select all documents'
selectChunk: 'Select a chunk to inspect its content.'
taskAttentionClear: 'No background tasks need attention.'
taskAttentionCount: '{{count}} background tasks need attention.'
taskAttentionErrorCount: '{{count}} background tasks need attention, including failed tasks.'
taskHistoryIncomplete: 'More task history is available; the attention count is incomplete.'
tasks: 'Tasks'
tasksWithAttention: 'Tasks, {{count}} need attention'
updatedColumn: 'Updated'
viewTask: 'View task'
}
knowledgeErrors: {
'settings.compilationInProgress': 'Documents are being processed. Wait for completion or cancel the tasks before changing models.'
'settings.migrationRequired': 'Published documents require a model migration. Change models through the reindex workflow.'
'settings.revisionConflict': 'Settings have changed. Reload the latest settings and select again. Reloading discards unsaved model and retrieval changes.'
'taskFailure.access': 'You do not have access to the required resource. Ask an administrator to check permissions.'
'taskFailure.attemptsExhausted': 'Processing was retried several times and still did not finish. Retry it; if it keeps failing, contact an administrator with the reference below.'
'taskFailure.configuration': 'This task needs configuration changes before it can continue. Review the related settings or ask an administrator.'
'taskFailure.conflict': 'The content changed while this task was running. Review the latest state and try again.'
'taskFailure.documentCountQuotaExceeded': 'The workspace document limit has been reached. Delete documents or upgrade the plan before adding more.'
'taskFailure.documentCountQuotaUnavailable': 'The workspace document quota could not be verified. Try again later.'
'taskFailure.documentProcessing': 'Document processing failed before a usable revision was created. Retry the task; if it still fails, contact an administrator.'
'taskFailure.embeddingDimension': "The embedding model's vector size no longer matches this Agent Knowledge Base's index. Restore the previous embedding model, or rebuild the index for the new one."
'taskFailure.failedAtStage': 'Failed while {{stage}}'
'taskFailure.internal': 'An internal Agent Knowledge Base error stopped this task. Retry it; if it still fails, contact an administrator.'
'taskFailure.invalid': 'The task input could not be processed. Review the file or settings and try again.'
'taskFailure.leaseLost': 'Processing was interrupted and will start again automatically.'
'taskFailure.modelConfiguration': 'A selected Agent Knowledge Base model is missing, invalid, or incompatible. Check the model settings before retrying.'
'taskFailure.modelContextLimit': "The model context cannot fit this document element and the processing instructions. Check the model's context limit before retrying."
'taskFailure.modelFailed': 'The selected model rejected the request. Check the model settings and remaining quota, then retry.'
'taskFailure.modelOutputLimit': 'The model output reached its token limit after automatic budget adjustment and window splitting. Contact an administrator to check the output limit.'
'taskFailure.modelResponseInvalid': 'The selected model returned a response that could not be used, usually because it does not support structured output or truncated it. Switch to another model or retry later.'
'taskFailure.modelService': 'A selected model service failed or did not respond while processing the document. Check the model service, then try again.'
'taskFailure.modelTimeout': 'The selected model did not respond in time. It will be retried automatically; if it keeps timing out, switch to a faster model.'
'taskFailure.modelUnavailable': 'The selected model service could not be reached. Check that the model service is running, then retry.'
'taskFailure.parser': 'The parser could not read or process this document. Check the file and parser settings, then try again.'
'taskFailure.parserInputInvalid': 'The parser could not read this file. It may be corrupted, encrypted, or empty. Check the file and upload it again.'
'taskFailure.parserNotConfigured': 'No document parser is configured for this Agent Knowledge Base. Configure a parser in the settings, then retry.'
'taskFailure.parserRateLimited': 'The document parser is busy. It will be retried automatically; retry manually if it still fails later.'
'taskFailure.parserResponseInvalid': 'The document parser returned an unusable result. Retry; if it keeps failing, contact an administrator.'
'taskFailure.parserTimeout': 'Parsing timed out, usually because the file is very large or complex. Retry later, or split the file before uploading.'
'taskFailure.parserUnavailable': 'The document parser service is temporarily unavailable. Retry later.'
'taskFailure.parserUnsupportedType': 'This file format is not supported by the configured parser. Convert it to a supported format and upload it again.'
'taskFailure.pdfRender': 'The PDF pages could not be rendered to extract images. Make sure the file is not damaged or password-protected, then retry.'
'taskFailure.reference': 'Reference: {{traceId}}'
'taskFailure.research': 'The research retrieval task could not finish. Retry it; if it still fails, contact an administrator.'
'taskFailure.source': 'The data source could not be read or synchronized. Check its connection and configuration, then try again.'
'taskFailure.sourceConfigInvalid': 'The data source configuration is incomplete or invalid. Review the source settings.'
'taskFailure.sourceConnection': 'The data source connection is missing or no longer usable. Reconnect the data source.'
'taskFailure.sourceContentMissing': 'The data source returned a document without content. Check the document at the source, then retry.'
'taskFailure.sourceContentTooLarge': 'A document from the data source exceeds the size limit. Split or exclude it at the source.'
'taskFailure.sourceCrawlPageNotFound': 'A selected web page no longer exists or cannot be reached. Preview the website again and update the selection.'
'taskFailure.sourceCrawlProviderUnavailable': 'The website crawl service did not respond. Retry later.'
'taskFailure.sourceCrawlResultLimit': 'The crawl found more pages than the configured limit. Narrow the crawl scope or raise the limit.'
'taskFailure.sourceCredential': 'The data source credentials are invalid or have expired. Reauthorize the data source or update its credentials.'
'taskFailure.sourceDocumentCompilation': 'A document from the data source failed while being processed. Open the document to see the exact error.'
'taskFailure.sourcePartial': 'Some documents could not be imported from the data source. Check the failed items in the document list, then retry.'
'taskFailure.sourceProviderRejected': 'The data source provider rejected the request or returned unusable data. Check the source configuration and permissions.'
'taskFailure.sourceProviderTimeout': 'The data source provider did not respond in time. Retry later.'
'taskFailure.sourceProviderUnavailable': 'The data source provider could not be reached. Check the network and the provider status, then retry.'
'taskFailure.sourceWorkflowTimeout': 'Waiting for the data source timed out. Retry later.'
'taskFailure.stage.chunking_indexing': 'chunking and indexing'
'taskFailure.stage.graph_admission': 'building the knowledge graph'
'taskFailure.stage.outline_summary': 'building the outline'
'taskFailure.stage.parsing': 'parsing the document'
'taskFailure.stage.publication': 'publishing'
'taskFailure.stage.queued': 'queued'
'taskFailure.stage.semantic_enrichment': 'semantic enrichment'
'taskFailure.stage.upload': 'uploading'
'taskFailure.storageTemporary': 'File storage or another required service is temporarily unavailable. It will be retried automatically.'
'taskFailure.temporary': 'A required service is temporarily unavailable. Try again later.'
'taskFailure.upload': 'The file upload could not be completed or verified. Upload the file again.'
'taskFailure.vectorSpaceQuotaExceeded': 'The workspace vector storage limit has been reached. Delete documents or upgrade the plan before indexing more.'
'taskFailure.vectorSpaceQuotaUnavailable': 'The workspace vector storage quota could not be verified. Try again later.'
}
knowledgeOverview: {
'overview.activity': 'Activity'
'overview.activityCanceled': 'Canceled {{operation}}'
'overview.activityCompleted': 'Completed {{operation}}'
'overview.activityFailed': 'Failed {{operation}}'
'overview.activityRunning': 'Running {{operation}}'
'overview.allActivity': 'All activity'
'overview.allTime': 'All time'
'overview.answerRate': 'Answer rate'
'overview.answerRateHelp': 'The share of queries answered with sufficient evidence in the selected time range.'
'overview.answered': 'Answered'
'overview.attention.failedDocument.description': 'The latest document revision could not be processed. Open Documents to review it and retry processing.'
'overview.attention.failedDocument.title': 'Document processing failed'
'overview.attention.lowQualityQuery.description': 'A query in this Agent Knowledge Base is waiting for review because its retrieval evidence was weak or missing.'
'overview.attention.lowQualityQuery.title': 'Query quality needs review'
'overview.attention.staleSource.description': 'This source has never synced successfully or its last successful sync was more than 7 days ago.'
'overview.attention.staleSource.title': 'Source data is stale'
'overview.blocker': 'Blocker'
'overview.connectSource': 'Connect a source'
'overview.documents': 'Documents'
'overview.fixSource': 'Fix source'
'overview.freshness': 'Freshness'
'overview.freshnessHelp': 'Time since the most recent successful source sync.'
'overview.indexedDocuments': '{{indexed}} of {{total}} documents indexed'
'overview.indexing': 'Indexing your first source'
'overview.indexingConnectedDescription': 'Connected successfully. Syncing and indexing your documents usually takes a few minutes.'
'overview.indexingInProgress': 'Indexing in progress'
'overview.indexingInProgressDescription': 'Documents and slices will appear here as indexing completes.'
'overview.indexingSource': 'Indexing {{source}}'
'overview.inventory': 'Knowledge Inventory'
'overview.last30Days': 'Last 30 days'
'overview.last7Days': 'Last 7 days'
'overview.last90Days': 'Last 90 days'
'overview.linkedApps': 'Linked apps'
'overview.loadMore': 'Load older activity'
'overview.lowConfidence': 'Low confidence'
'overview.needsAttention': 'Needs attention'
'overview.ninetyDays': '90 days'
'overview.noActivity': 'No activity yet'
'overview.noActivityDescription': 'Source syncs, index rebuilds, and evidence changes will appear here.'
'overview.noEvidence': 'No evidence'
'overview.noIssues': 'Nothing needs attention'
'overview.noIssuesDescription': 'Blockers, stale indexes, and evidence issues will show up here as this Agent Knowledge Base is used.'
'overview.noMatchingActivity': 'No matching activity'
'overview.noMatchingActivityDescription': 'Try a wider date range.'
'overview.noQueryData': 'No query data yet'
'overview.noQueryDataDescription': 'Query outcomes will appear here once linked apps start asking questions.'
'overview.noSources': 'Add your first source'
'overview.noSourcesDescription': 'Connect a source or upload files. Indexing happens automatically.'
'overview.onlineDocuments': 'Online documents'
'overview.onlineDrives': 'Online drives'
'overview.operator': 'Operator'
'overview.queries': 'Queries'
'overview.queriesHelp': 'Total queries sent to this Agent Knowledge Base in the selected time range.'
'overview.queryOutcomes': 'Query outcomes'
'overview.readOnlyDescription': 'Read-only Agent Knowledge Base'
'overview.recentActivity': 'Recent activity'
'overview.review': 'Review'
'overview.reviewConflict': 'Review conflict'
'overview.serious': 'Serious'
'overview.sevenDays': '7 days'
'overview.sources': 'Sources'
'overview.syncInProgress': 'Sync in progress'
'overview.syncInProgressDescription': 'Source sync started a moment ago. Events will appear here as they complete.'
'overview.system': 'System'
'overview.thirtyDays': '30 days'
'overview.timeRange': 'Time range'
'overview.today': 'Today'
'overview.twentyFourHours': '24 hours'
'overview.updateEvidence': 'Update evidence'
'overview.uploadFiles': 'Upload files'
'overview.uploads': 'Uploads'
'overview.viewDocuments': 'View documents'
'overview.webCrawl': 'Web crawl'
'overview.when': 'When'
'overview.yesterday': 'Yesterday'
}
knowledgeQuality: {
'qualityPage.addGolden': 'Add golden'
'qualityPage.annotation': 'Annotation'
'qualityPage.annotationPlaceholder': 'Reviewer notes for expected answer quality'
'qualityPage.badCasesEmptyDescription': 'Cases flow in from production reports and retrieval tests — nothing needs attention right now.'
'qualityPage.badCasesEmptyTitle': 'No bad cases recorded'
'qualityPage.badCasesTab': 'Bad cases'
'qualityPage.cancel': 'Cancel'
'qualityPage.chooseCsv': 'Choose a CSV file'
'qualityPage.clearEvidence': 'Clear'
'qualityPage.clearSelection': 'Clear selection'
'qualityPage.closeDialog': 'Close dialog'
'qualityPage.createTitle': 'Create golden question'
'qualityPage.createdToast': 'Golden question created.'
'qualityPage.csvError.empty': 'The CSV does not contain any data rows.'
'qualityPage.csvError.headers': 'Use exactly three columns: question, evidence, and tags.'
'qualityPage.csvError.parse': 'The CSV could not be parsed.'
'qualityPage.csvError.required': 'Every row must include a question and evidence.'
'qualityPage.csvError.size': 'The CSV must be 1 MB or smaller.'
'qualityPage.csvError.tooManyRows': 'A CSV can contain at most {{count}} rows.'
'qualityPage.delete': 'Delete'
'qualityPage.deleteEllipsis': 'Delete…'
'qualityPage.deletedToast':
| '{{count}} golden question deleted.'
| '{{count}} golden questions deleted.'
'qualityPage.description': 'Golden questions to replay against retrieval, bad cases from production, and evaluation runs.'
'qualityPage.edit': 'Edit'
'qualityPage.editTitle': 'Edit golden question'
'qualityPage.evaluation.back': 'Back to runs'
'qualityPage.evaluation.createdAt': 'Created'
'qualityPage.evaluation.dialogDescription':
| 'Replays your {{count}} active golden question in the background. Drafts and stale questions are skipped.'
| 'Replays your {{count}} active golden questions in the background. Drafts and stale questions are skipped.'
'qualityPage.evaluation.dialogDescriptionPending': 'Replays every active golden question in the background. Drafts and stale questions are skipped.'
'qualityPage.evaluation.dialogTitle': 'Run quality evaluation'
'qualityPage.evaluation.duration': 'Duration'
'qualityPage.evaluation.emptyDescription': 'Replay every active golden question against the current retrieval profile to see which expected evidence is still found.'
'qualityPage.evaluation.emptyTitle': 'No evaluation runs yet'
'qualityPage.evaluation.evidenceDetailsDescription': 'Compare every expected evidence passage with the passages returned by this evaluation.'
'qualityPage.evaluation.evidenceDetailsLoadError': 'Evidence details could not be loaded. Try again.'
'qualityPage.evaluation.evidenceDetailsTitle': 'Evidence hit details'
'qualityPage.evaluation.evidenceHit': 'Passages found'
'qualityPage.evaluation.evidencePage': 'Page {{page}}'
'qualityPage.evaluation.executionFailed': 'The run could not be completed. Check the knowledge retrieval configuration and run it again.'
'qualityPage.evaluation.hitRate': 'Evidence hit rate'
'qualityPage.evaluation.loadError': 'Evaluation runs could not be loaded. Try again.'
'qualityPage.evaluation.missed': 'Missed'
'qualityPage.evaluation.mode.deep': 'Deep'
'qualityPage.evaluation.mode.fast': 'Fast'
'qualityPage.evaluation.mode.research': 'Research'
'qualityPage.evaluation.modeLabel': 'Retrieval mode'
'qualityPage.evaluation.noEvidenceInGroup': 'No evidence passages in this group.'
'qualityPage.evaluation.openEvidenceDetails': 'View evidence details for {{question}}: {{matched}} of {{expected}} hit'
'qualityPage.evaluation.passed': 'Hit'
'qualityPage.evaluation.progress': 'Progress'
'qualityPage.evaluation.reportTitle': 'Evaluation report'
'qualityPage.evaluation.retryLoad': 'Reload'
'qualityPage.evaluation.run': 'Run evaluation'
'qualityPage.evaluation.runningDescription': 'The run is continuing in the background. This page refreshes automatically.'
'qualityPage.evaluation.start': 'Start evaluation'
'qualityPage.evaluation.startError': 'The evaluation run could not be created. Make sure at least one active golden question exists and try again.'
'qualityPage.evaluation.startedToast': 'Evaluation run created.'
'qualityPage.evaluation.state.canceled': 'Canceled'
'qualityPage.evaluation.state.failed': 'Failed'
'qualityPage.evaluation.state.passed': 'Passed'
'qualityPage.evaluation.state.queued': 'Queued'
'qualityPage.evaluation.state.running': 'Running'
'qualityPage.evaluation.viewReport': 'View report'
'qualityPage.evaluationTab': 'Evaluations'
'qualityPage.evidencePlaceholder': 'Paste the expected passage or describe the evidence to find'
'qualityPage.evidenceSelected': '{{count}} evidence passages selected'
'qualityPage.findEvidence': 'Find evidence'
'qualityPage.goldenEmptyDescription': 'Golden questions are replayed against retrieval after every sync to catch regressions.'
'qualityPage.goldenEmptyTitle': 'No golden questions yet'
'qualityPage.goldenStatus.active': 'Active'
'qualityPage.goldenStatus.draft': 'Draft'
'qualityPage.goldenStatus.paused': 'Paused'
'qualityPage.goldenStatus.stale': 'Stale'
'qualityPage.goldenStatusReason.source-deleted': 'Source deleted. Rebind the evidence.'
'qualityPage.goldenStatusReason.source-disabled': 'Document disabled. Re-enable it to resume evaluation.'
'qualityPage.goldenTab': 'Golden questions'
'qualityPage.ignore': 'Ignore'
'qualityPage.importComplete': 'Import complete'
'qualityPage.importCsv': 'Import CSV'
'qualityPage.importDescription': 'Upload a CSV with exactly three columns: question, evidence, and tags. Evidence is matched to document paragraphs in batches; unmatched rows are saved as drafts.'
'qualityPage.importResult': '{{active}} active and {{draft}} draft golden questions were created.'
'qualityPage.importTitle': 'Import golden questions'
'qualityPage.matchPolicy.all': 'Require all'
'qualityPage.matchPolicy.any': 'Require any'
'qualityPage.matchPolicyLabel': 'Evidence match policy'
'qualityPage.noEvidenceMatch': 'No matching document paragraph was found. You can still save this question as a draft.'
'qualityPage.noEvidenceSelected': 'No evidence selected; this question will be saved as a draft.'
'qualityPage.openTrace': 'Open trace'
'qualityPage.previewRows': 'Preview ({{count}} rows)'
'qualityPage.promote': 'Promote'
'qualityPage.promoteTitle': 'Promote to golden question'
'qualityPage.promotedToast': 'Golden question created from bad case.'
'qualityPage.questionActions': 'Actions for {{question}}'
'qualityPage.questionPlaceholder': 'What should users be able to ask?'
'qualityPage.questionRequired': 'Question is required.'
'qualityPage.reason': 'Reason'
'qualityPage.reasonValues.coverageGap': 'Coverage gap'
'qualityPage.reasonValues.outdatedContent': 'Outdated content'
'qualityPage.replay': 'Replay'
'qualityPage.save': 'Save'
'qualityPage.selectAll': 'Select all golden questions'
'qualityPage.selectQuestion': 'Select {{question}}'
'qualityPage.selectedCount': '{{count}} question selected' | '{{count}} questions selected'
'qualityPage.status.fixed': 'Fixed'
'qualityPage.status.open': 'Open'
'qualityPage.status.replaying': 'Replaying'
'qualityPage.statusLabel': 'Status'
'qualityPage.tags': 'Tags'
'qualityPage.tagsPlaceholder': 'billing, sso'
'qualityPage.title': 'Quality'
'qualityPage.toGolden': 'To golden question'
'qualityPage.updated': 'Updated'
'qualityPage.updatedToast': 'Golden question updated.'
}
knowledgeRetrieval: {
'retrievalTest.addImages': 'Add images'
'retrievalTest.analyzing': 'Analyzed findings'
'retrievalTest.analyzingActive': 'Analyzing findings…'
'retrievalTest.cancel': 'Cancel'
'retrievalTest.canceled': 'Canceled'
'retrievalTest.completedIn': 'Completed in {{duration}}'
'retrievalTest.description': 'Test real questions against this Agent Knowledge Base, inspect the chunks that come back, and turn runs into golden questions or bad cases.'
'retrievalTest.emptyDescription': 'Run your first test to see which chunks come back.'
'retrievalTest.emptyRecords': 'Your retrieval runs will appear here.'
'retrievalTest.emptyTitle': 'No test runs yet'
'retrievalTest.failedAfter': 'Failed after {{duration}}'
'retrievalTest.failedDescription': "The retrieval run couldn't be completed. Try the question again."
'retrievalTest.failedTitle': 'Retrieval failed'
'retrievalTest.foundSoFar': 'Found so far ({{count}})'
'retrievalTest.generating': 'Generated result'
'retrievalTest.generatingActive': 'Generating result…'
'retrievalTest.imageInvalid': 'Only GIF, JPEG, PNG, or WebP images up to 10 MB each and 32 MB total are supported.'
'retrievalTest.imageLimit': 'You can attach up to 4 images.'
'retrievalTest.imageUploadFailed': 'Image upload failed. Try again.'
'retrievalTest.keepGoldenQuestion': 'Keep golden question'
'retrievalTest.makeBadCase': 'Make bad case'
'retrievalTest.noChunksDescription': 'Nothing in this Agent Knowledge Base matched the query. Try different wording, or make it a bad case so the gap gets tracked.'
'retrievalTest.noChunksTitle': 'No chunks retrieved'
'retrievalTest.open': 'Open'
'retrievalTest.page': 'Page {{page}}'
'retrievalTest.planning': 'Planned the research'
'retrievalTest.planningActive': 'Planning research…'
'retrievalTest.processLog': 'Process log'
'retrievalTest.quality': 'Quality'
'retrievalTest.queryImages': 'Query images'
'retrievalTest.queryPlaceholder': 'Enter a query to test retrieval…'
'retrievalTest.recordSummary': '{{count}} chunks in {{duration}}'
'retrievalTest.records': 'Records'
'retrievalTest.removeImage': 'Remove {{name}}'
'retrievalTest.researchResult': 'Research result'
'retrievalTest.result': 'Retrieval result'
'retrievalTest.retrieving': 'Retrieved sources'
'retrievalTest.retrievingActive': 'Retrieving sources…'
'retrievalTest.retry': 'Retry'
'retrievalTest.revision': 'Rev {{revision}}'
'retrievalTest.run': 'Run'
'retrievalTest.running': 'Researching…'
'retrievalTest.savedBadCase': 'Saved as bad case'
'retrievalTest.savedGoldenQuestion': 'Saved as golden question'
'retrievalTest.score': 'Score'
'retrievalTest.showAllChunks': 'Show all {{count}} chunks'
'retrievalTest.source.agent': 'Agent'
'retrievalTest.source.mcp': 'MCP'
'retrievalTest.source.retrieval_test': 'Retrieval test'
'retrievalTest.source.service_api': 'Service API'
'retrievalTest.source.workflow': 'Workflow'
'retrievalTest.sourceFilter.all': 'All'
'retrievalTest.sourceFilter.label': 'Record source'
'retrievalTest.sourceFilter.retrieval_test': 'Retrieval tests'
'retrievalTest.sourceFilter.workflow': 'Workflow'
'retrievalTest.viewInQuality': 'View in Quality'
}
knowledgeSettings: {
'settings.apiAccessDescription': 'Control API access for Service API and Agent Access.'
'settings.apiAccessLabel': 'API access'
'settings.basicInfo': 'Basic info'
'settings.dangerZone': 'Danger zone'
'settings.deleteConfirmInputLabel': 'To confirm, type <name>{{name}}</name> in the box below:'
'settings.deleteConfirmInputPlaceholder': 'Enter Agent Knowledge Base name…'
'settings.deleteDescription': 'All documents, sources, and indexes will be permanently removed.'
'settings.deleteDialogDescription': 'This permanently removes all documents, sources, and indexes in this Agent Knowledge Base. Apps and workflows using it will stop retrieving. This action cannot be undone.'
'settings.deleteDialogTitle': 'Delete this Agent Knowledge Base?'
'settings.deleteTitle': 'Delete this Agent Knowledge Base'
'settings.descriptionPlaceholder': 'Describe what is in this Agent Knowledge Base. A detailed description helps apps and workflows understand when to use it.'
'settings.embeddingChangeWarning': 'Changing the embedding model re-indexes all documents (time + token cost).'
'settings.embeddingModelLabel': 'Embedding model'
'settings.embeddingModelRequired': 'Select an embedding model.'
'settings.membersRequired': 'Select at least one team member.'
'settings.nameRequired': 'Agent Knowledge Base name is required.'
'settings.pageDescription': 'Manage basic info, API access, and retrieval.'
'settings.reloadLatest': 'Reload latest settings'
'settings.rerankModelRequired': 'Select a rerank model.'
'settings.retrievalDepth': 'Retrieval depth'
'settings.retrievalDescription': 'Retrieval models, depth, and ranking policy used by apps and workflows.'
'settings.retrievalTitle': 'Retrieval'
'settings.saveChanges': 'Save changes'
'settings.scoreRange': 'range 0.00–1.00'
'settings.serverConflict': 'These settings changed elsewhere. Cancel your edits to load the latest version before saving again.'
'settings.systemReasoningModelLabel': 'System reasoning model'
'settings.systemReasoningModelRequired': 'Select a system reasoning model.'
'settings.topKMinimum': 'min = 1'
'settings.workflowAccessDescription': 'Allow published workflows and workflow debugging to retrieve from this Agent Knowledge Base.'
'settings.workflowAccessLabel': 'Workflow access'
workflowAccess: 'Workflow access'
}
knowledgeSources: {
addSourceDescription: 'Connect a source to this Agent Knowledge Base — it syncs automatically and stays fresh.'
addSourceFailed: "We couldn't add this source. Review the settings and try again."
addSourceRequiresSelection: 'Select at least one crawled page before adding the source.'
adjustAndRecrawl: 'Adjust & re-crawl'
allSources: 'All sources'
authenticationMethod: 'Authentication method'
awaitingInitialSource: 'Preparing the initial source…'
booleanFalse: 'No'
booleanTrue: 'Yes'
cancelAddSource: 'Cancel'
configureProvider: 'Configure {{provider}}'
connectProvider: 'Connect {{provider}}'
connectingProvider: 'Connecting…'
connectionFailed: "We couldn't connect {{provider}}. Re-enter the credential and try again."
connectionNeedsAttention: '{{provider}} connection needs attention'
connectionNeedsAttentionDescription: 'Refresh the connection before adding a website source.'
connectionProvisioning: '{{provider}} is connecting'
connectionRefreshFailed: "We couldn't refresh this connection. Try again."
crawlFailed: "Couldn't crawl {{host}}"
crawlFailed403: 'The site returned 403 — it may block crawlers or require authentication. Check the URL, adjust crawl options, or try another provider.'
crawlFailedDescription: "The crawler couldn't finish this preview. Check the URL, adjust crawl options, or try again."
crawlFailedProvider: '{{provider}} reported an error. Check the provider connection and try again.'
crawlFailedTimeout: 'The crawl timed out. Try a narrower URL or reduce the maximum page count.'
crawlOptions: 'Crawl options'
crawlProgress: 'Crawl progress for {{host}}'
includeSubpages: 'Include sub-pages'
invalidDatasourceParameter: 'Enter a valid value for {{parameter}}.'
lastSyncColumn: 'Last sync'
maxPages: 'Maximum pages'
noMatchingSources: 'No sources match this search.'
noPagesFound: 'No pages found at {{host}}'
noPagesFoundDescription: 'The crawler reached the site but found no indexable pages. Try a different URL, or expand crawl options (sub-pages, depth, include paths).'
pagesCrawled:
| '{{count}} pages crawled at {{host}}'
| '{{count}} page crawled at {{host}}'
| '{{count}} pages crawled at {{host}}'
pagesSelected: '{{count}} selected'
providerConnected: '{{provider}} connected'
providerCredentialRequiredDescription: 'Configure credentials for {{provider}} in Data Sources, then return here to connect it.'
providerNotConfigured: '{{provider}} is not configured'
providerNotConfiguredDescription: "Add an API key or endpoint URL to crawl websites with {{provider}}. Your source settings will appear here once it's connected."
providerUnavailable: 'This provider is unavailable.'
reCrawl: 'Re-crawl'
refreshConnectionStatus: 'Refresh status'
refreshSources: 'Refresh sources'
refreshingConnection: 'Refreshing…'
removeSource: 'Remove source'
resetToDefaults: 'Reset to defaults'
retryCrawl: 'Retry crawl'
rootUrl: 'Root URL'
rootUrlPlaceholder: 'https://docs.example.com'
searchSources: 'Search sources'
selectAll: 'Select all'
selectFilesAndFolders: 'Select files & folders to sync'
selectFoldersAndDocsToSync: 'Select folders & docs to sync'
selectPagesToSync: 'Select pages to sync'
skippedFailed: 'Skipped (failed)'
skippedOffDomain: 'Skipped (off-domain)'
sourceActions: 'Actions for {{name}}'
sourceFilterLabel: 'Filter sources by status'
sourceName: 'Source name'
sourceNamePlaceholder: 'e.g. Product docs crawl'
sourceSyncProgress: '{{completed}} / {{total}} pages'
sourceTypeLabel: 'Source type'
sourcesDescription: 'Where knowledge comes from, how fresh it is, and whether the last sync succeeded.'
sourcesEmptyDescription: 'Connect a website, workspace, or drive — Dify keeps it synced and fresh, so retrieval never breaks.'
sourcesEmptyTitle: 'No sources connected yet'
sourcesErrorTitle: "Sources couldn't load"
stoppingCrawl: 'Stopping…'
syncNow: 'Sync now'
syncPolicy: 'Sync policy'
syncPolicyApply: 'Apply'
syncPolicyColumn: 'Sync policy'
syncPolicyCustom: 'Custom interval'
syncPolicyCustomDescription: 'First sync runs right after creation, then {{interval}}.'
syncPolicyCustomHelp: 'From 1 hour to 30 days. Will sync {{interval}}.'
syncPolicyCustomValue: 'Custom · {{interval}}'
syncPolicyDaily: 'Every 24 hours'
syncPolicyEditCustom: 'Edit custom interval'
syncPolicyEvery: 'Every'
syncPolicyEveryValue: 'Every {{interval}}'
syncPolicyManual: 'Manual only'
usingDefaults: 'Using defaults'
}
knowledgeSpace: {
actionsColumn: 'Actions'
addDocument: 'Add document'
addSource: 'Add source'
apiAccessActive: 'Active'
apiAccessInactive: 'Inactive'
apiAgentAccess: 'API Access'
'authKind.api-key': 'API key'
'authKind.endpoint': 'Endpoint'
backToList: 'Back to Agent Knowledge Bases'
backgroundTasks: 'Background tasks'
chunkCount: 'Chunks'
connectSource: 'Connect a source'
connectSourceDescription: 'Content stays in sync with Notion, websites, and other services.'
crawlAndPreview: 'Crawl & preview'
crawlStartFailed: "The crawl preview couldn't start. Try again."
crawlStopped: 'Crawl stopped'
crawling: 'Crawling…'
crawlingPages: 'Crawling {{host}}… {{count}} pages found'
detailErrorDescription: "We couldn't load this Agent Knowledge Base. Try again."
detailErrorTitle: 'Something went wrong'
disableSource: 'Disable'
documentColumn: 'Document'
documentPermissionRestricted: "Your workspace permissions don't allow document or task actions."
'documentStatus.disabled': 'Disabled'
'documentStatus.failed': 'Failed'
'documentStatus.processing': 'Processing'
'documentStatus.queued': 'Queued'
'documentStatus.ready': 'Ready'
'documentUploadExclusion.batchLimit': 'batch size limit exceeded'
'documentUploadExclusion.countLimit': 'file count limit exceeded'
'documentUploadExclusion.fileEmpty': 'File is empty'
'documentUploadExclusion.fileSize': 'Exceeds {{size}} MB limit'
'documentUploadExclusion.fileType': 'unsupported or invalid file type'
'documentUploadExclusion.processing': 'processing failed'
'documentUploadExclusion.quota': 'workspace quota exceeded'
'documentUploadExclusion.target': 'document target is no longer valid'
documentUploadFailed: "We couldn't upload these documents. Try again."
documentUploadFormats: 'Supports text, Markdown, HTML, PDF, Office, EPUB, email, and structured data (CSV, JSON/JSONL, XML) · up to {{size}} MB each'
documents: 'Documents'
documentsDescription: 'Knowledge assets and their revisions — where each document came from and whether the latest revision is indexed.'
documentsEmptyDescription: 'Upload files here, or connect a source on the Source tab — documents are parsed, chunked, and indexed automatically.'
documentsEmptyTitle: 'No documents yet'
documentsErrorDescription: "We couldn't load documents. Try again."
documentsPermissionDescription: "You don't have permission to view documents in this Agent Knowledge Base."
documentsReindexPartial: '{{queued}} documents queued; {{missing}} no longer exist.'
documentsSelected: '{{count}} documents selected'
emptyDescription: 'Add your documents and agents can read them directly — no indexing to configure.'
emptyTitle: 'Knowledge ready for your agents'
errorDescription: "We couldn't load your Agent Knowledge Bases. Try again."
errorTitle: 'Something went wrong'
fileSize: 'File size'
gotIt: 'Got it'
guideDescription: 'Connect a source and its documents stay in sync, indexed automatically and ready to use. Your existing Knowledge Bases keep working as they are.'
guideTitle: 'Meet Agent Knowledge Base ✨'
learnMore: 'Learn more'
loadMore: 'Load more'
metadata: 'Meta Data'
'modelCost.title': 'Model usage and costs'
'modelCost.uploadDescription': 'Once processing starts, models process the documents in this upload and consume tokens. More document content usually means higher usage and may result in significant costs. Actual costs depend on how the model you use is billed.'
'modelCost.uploadSummary': 'Files to process: {{count}}'
moreProviders: 'More providers'
name: 'Agent Knowledge Base name'
new: 'Agent Knowledge Base'
noDescription: 'No description'
notFoundDescription: 'This Agent Knowledge Base may have been deleted or you may not have access.'
notFoundTitle: 'Agent Knowledge Base not found'
onlineDocuments: 'Online documents'
onlineDrive: 'Online drive'
openSource: 'Open source'
'overview.attention.action.configureModels': 'Configure models'
'overview.attention.modelReadiness.bindingMissing': 'The published index is not bound to the active model configuration; rebuild or republish the index.'
'overview.attention.modelReadiness.description': 'Required model profiles are missing or are not bound to the current published index.'
'overview.attention.modelReadiness.pendingDescription': 'The selected models will be validated when the first document is processed.'
'overview.attention.modelReadiness.pendingTitle': 'Model configuration is awaiting validation'
'overview.attention.modelReadiness.profilesMissing': 'Configure and publish the required embedding, reasoning, and rerank models.'
'overview.attention.modelReadiness.title': 'Model configuration is incomplete'
overviewTitle: 'Overview'
pagesAppearDescription: 'Crawl the site to review and select which pages get added.'
pagesAppearTitle: 'Pages will appear here'
permission: 'Permission'
permissionRestricted: "Your workspace permissions don't allow changing this setting."
preview: 'Preview'
'processingTaskState.canceled': 'Interrupted'
'processingTaskState.dispatch_pending': 'Preparing'
'processingTaskState.failed': 'Failed'
'processingTaskState.queued': 'Queued'
'processingTaskState.retry_wait': 'Waiting to retry'
'processingTaskState.running': 'Processing · {{progress}}%'
'processingTaskState.succeeded': 'Completed'
'processingTaskState.superseded': 'Superseded'
providerLabel: 'Provider'
providerLoadFailed: "Providers couldn't load"
quality: 'Quality'
'qualityPage.evaluation.evidenceUnavailable': 'This historical evidence passage is no longer available or you no longer have permission to view it.'
'qualityPage.evidence': 'Evidence'
'qualityPage.question': 'Question'
'qualityPage.reasonValues.lowScore': 'Low score'
'qualityPage.reasonValues.retrievalMiss': 'Retrieval miss'
readOnlyEmpty: 'Ask a workspace editor to create the first Agent Knowledge Base.'
reindexDocuments: 'Re-index'
retrievalCount: 'Retrieval count'
'retrievalTest.justNow': 'Just now'
'retrievalTest.title': 'Retrieval Test'
retryProviderLoad: 'Retry'
retryTask: 'Retry'
'settings.retrievalMode.auto': 'Auto'
'settings.retrievalMode.deep': 'Deep'
'settings.retrievalMode.fast': 'Fast'
'settings.retrievalMode.research': 'Research'
'settings.retrievalModeLabel': 'Retrieval mode'
'settings.saveFailed': 'Couldn’t save changes. Check your connection and try again — your edits are still here.'
'settings.topKLabel': 'TOP K'
'settings.viewOnly': 'View-only access — settings are read-only'
sourceColumn: 'Source'
'sourceStatus.active': 'Active'
'sourceStatus.disabled': 'Disabled'
'sourceStatus.error': 'Error'
'sourceStatus.initializing': 'Initializing'
'sourceStatus.syncing': 'Syncing'
'sourceType.connector': 'Connected app'
'sourceType.object-storage': 'Online drive'
'sourceType.upload': 'Upload'
'sourceType.web': 'Website crawl'
sources: 'Sources'
sourcesErrorDescription: "We couldn't load sources. Try again."
startEmpty: 'Start empty'
startEmptyDescription: 'Create it now, add content later.'
statusColumn: 'Status'
stopCrawl: 'Stop'
'syncPolicyUnit.days': 'days'
'syncPolicyUnit.hours': 'hours'
taskActionFailed: "We couldn't update this task. Refresh and try again."
tasksErrorDescription: "We couldn't load background tasks. Try again."
unavailableDescription: "Agent Knowledge Base isn't available for this workspace right now."
unavailableTitle: 'Agent Knowledge Base is unavailable'
updated: 'Updated {{date}}'
uploadFiles: 'Upload files'
uploadFilesDescription: "Add files from your computer — they're indexed as soon as you create the Agent Knowledge Base."
'view.agent': 'Agent'
'view.beta': 'Beta'
'view.classic': 'Classic'
viewLabel: 'Knowledge view'
websiteCrawl: 'Website crawl'
}
knowledgeTasks: {
backgroundTasksDescription: 'Document adds, source syncs, and re-index jobs.'
dismissTask: 'Dismiss task'
graphRepairFailed: 'Text is searchable. The knowledge graph is incomplete because graph processing failed.'
graphRepairPending: 'Text is searchable. The knowledge graph is being completed.'
graphRepairRetry: 'Retry graph processing'
interruptTask: 'Interrupt'
noBackgroundTasks: 'No background tasks yet.'
'overview.operation.document_delete': 'document deletion'
'overview.operation.document_processing': 'document processing'
'overview.operation.document_reindex': 'document reindexing'
'overview.operation.document_upload': 'document upload'
'overview.operation.source_bulk': 'source update'
'overview.operation.source_crawl_import': 'website import'
'overview.operation.source_crawl_preview': 'website preview'
'overview.operation.source_online_document_import': 'online document import'
'overview.operation.source_online_drive_import': 'online drive import'
'overview.operation.source_sync': 'source sync'
taskDismissed: 'Task dismissed'
taskFailedNotification: 'Document processing failed — retry from Tasks'
undoTaskDismissal: 'Undo'
}
knowledgeUpgrade: {
'upgrade.completeDescription': '“{{name}}” is now an Agent Knowledge Base'
'upgrade.completeTitle': 'Upgrade complete'
'upgrade.contactSupport': 'Contact Support'
'upgrade.dialogAvailability': 'After the upgrade, <strong>both the Classic and Agent Knowledge Bases remain available</strong>'
'upgrade.dialogDescription': 'Upgrade this <legacy>Classic Knowledge Base</legacy> to an <new>Agent Knowledge Base</new>, carrying over documents and relevant settings. You’ll be taken to the Agent Knowledge Base automatically.'
'upgrade.dialogDuration': 'Takes a few minutes to a few hours, depending on size. Progress is shown on the knowledge base card'
'upgrade.dialogLinkedApps': 'Existing apps continue to use the Classic Knowledge Base. To use the Agent Knowledge Base, reconfigure the apps'
'upgrade.dialogTitle': 'Upgrade to an Agent Knowledge Base?'
'upgrade.failedDescription': 'Upgrade failed. Nothing was changed, and your Classic Knowledge Base is still available.'
'upgrade.failedTitle': 'Upgrade failed'
'upgrade.failedToastDescription': '“{{name}}” remains a Classic Knowledge Base. No data was changed'
'upgrade.justNow': 'Just now'
'upgrade.menuLabel': 'Upgrade to Agent Knowledge Base'
'upgrade.migratingDocuments': 'Migrating documents…'
'upgrade.modelCostDescription': 'Upgrading uses models to process the documents in this knowledge base and consumes tokens. More document content usually means higher usage and may result in significant costs. Actual costs depend on how the model you use is billed.'
'upgrade.modelsUnavailable': 'Some selected models are unavailable. Select other models and try again.'
'upgrade.start': 'Start upgrade'
'upgrade.startFailed': "The upgrade couldn't be started. Try again."
'upgrade.statusFailed': 'Upgrade failed'
'upgrade.statusUpgrading': 'Upgrading'
'upgrade.summary': 'Knowledge base: {{name}}'
'upgrade.upgradedJustNow': 'Upgraded just now'
}
layout: {
'sidebar.collapseSidebar': 'Collapse Sidebar'
'sidebar.expandSidebar': 'Expand Sidebar'
}
login: {
adminInitPassword: 'Admin initialization password'
back: 'Back'
backToLogin: 'Back to login'
backToSignIn: 'Return to sign in'
changePassword: 'Set a password'
changePasswordBtn: 'Set a password'
changePasswordTip: 'Please enter a new password for your account'
'checkCode.checkYourEmail': 'Check your email'
'checkCode.didNotReceiveCode': "Didn't receive the code? "
'checkCode.emptyCode': 'Code is required'
'checkCode.invalidCode': 'Invalid code'
'checkCode.resend': 'Resend'
'checkCode.tipsPrefix': 'We send a verification code to '
'checkCode.validTime': 'Bear in mind that the code is valid for 5 minutes'
'checkCode.verificationCode': 'Verification code'
'checkCode.verificationCodePlaceholder': 'Enter 6-digit code'
'checkCode.verify': 'Verify'
checkEmailForResetLink: "Please check your email for a link to reset your password. If it doesn't appear within a few minutes, make sure to check your spam folder."
confirmPasswordPlaceholder: 'Confirm your new password'
createSample: "Based on this information, we'll create sample application for you"
dontHave: "Don't have?"
email: 'Email address'
emailPlaceholder: 'Your email'
enterYourName: 'Please enter your username'
'error.emailEmpty': 'Email address is required'
'error.emailInValid': 'Please enter a valid email address'
'error.initPasswordIncorrect': 'Incorrect initialization password.'
'error.invalidEmailOrPassword': 'Invalid email or password.'
'error.invalidSSOProtocol': 'Invalid SSO protocol'
'error.nameEmpty': 'Name is required'
'error.passwordEmpty': 'Password is required'
'error.passwordInvalid': 'Password must contain letters and numbers, and the length must be greater than 8'
'error.ssoFailed': 'SSO login failed. Please try again or contact your administrator.'
explore: 'Explore Dify'
forget: 'Forgot your password?'
forgotPassword: 'Forgot your password?'
forgotPasswordDesc: 'Please enter your email address to reset your password. We will send you an email with instructions on how to reset your password.'
go: 'Go to Dify'
goToInit: 'If you have not initialized the account, please go to the initialization page'
installBtn: 'Set up'
interfaceLanguage: 'Interface Language'
invalid: 'The link has expired'
invalidInvitationCode: 'Invalid invitation code'
invitationCode: 'Invitation Code'
invitationCodePlaceholder: 'Your invitation code'
join: 'Join '
joinTipEnd: ' team on Dify'
joinTipStart: 'Invite you join '
joinWorkspace: 'Join {{workspaceName}}'
'license.link': 'Open-source License'
'license.tip': 'Before starting Dify Community Edition, read the GitHub'
licenseExpired: 'License Expired'
licenseExpiredTip: 'The Dify Enterprise license for your workspace has expired. Please contact your administrator to continue using Dify.'
licenseInactive: 'License Inactive'
licenseInactiveTip: 'The Dify Enterprise license for your workspace is inactive. Please contact your administrator to continue using Dify.'
licenseLost: 'License Lost'
licenseLostTip: 'Failed to connect Dify license server. Please contact your administrator to continue using Dify.'
name: 'Username'
namePlaceholder: 'Your username'
noLoginMethod: 'Authentication method not configured'
noLoginMethodTip: 'Please contact the system admin to add an authentication method.'
oneMoreStep: 'One more step'
or: 'OR'
pageTitle: 'Log in to Dify'
pageTitleForE: "Hey, let's get started!"
password: 'Password'
passwordChanged: 'Sign in now'
passwordChangedTip: 'Your password has been successfully changed'
passwordPlaceholder: 'Your password'
pp: 'Privacy Policy'
resetLinkSent: 'Reset link sent'
resetPassword: 'Reset Password'
resetPasswordDesc: 'Type the email you used to sign up on Dify and we will send you a password reset email.'
sendResetLink: 'Send reset link'
sendUsMail: "Email us your introduction, and we'll handle the invitation request."
sendVerificationCode: 'Send Verification Code'
setAdminAccount: 'Setting up an admin account'
setAdminAccountDesc: 'Maximum privileges for admin account, which can be used to create applications and manage LLM providers, etc.'
setYourAccount: 'Set Your Account'
showPassword: 'Show password'
signBtn: 'Sign in'
'signup.createAccount': 'Create your account'
'signup.haveAccount': 'Already have an account? '
'signup.noAccount': 'Don’t have an account? '
'signup.signIn': 'Sign In'
'signup.signUp': 'Sign Up'
'signup.verifyMail': 'Continue with verification code'
'signup.welcome': '👋 Welcome! Please fill in the details to get started.'
timezone: 'Time zone'
tos: 'Terms of Service'
tosDesc: 'By signing up, you agree to our'
'turnstile.loadError': "Security verification couldn't load."
usePassword: 'Use Password'
useVerificationCode: 'Use Verification Code'
validate: 'Validate'
'webapp.disabled': 'Webapp authentication is disabled. Please contact the system admin to enable it. You can try to use the app directly.'
'webapp.login': 'Login'
welcome: '👋 Welcome! Please log in to get started.'
withGitHub: 'Continue with GitHub'
withGoogle: 'Continue with Google'
withSSO: 'Continue with SSO'
}
modelProvider: {
'form.searchModel': 'Search model'
'modelProvider.addModel': 'Add Model'
'modelProvider.apiKeyRateLimit': 'Rate limit was reached, available after {{seconds}}s'
'modelProvider.apiKeyStatusNormal': 'APIKey status is normal'
'modelProvider.auth.addApiKey': 'Add API Key'
'modelProvider.auth.addCredential': 'Add credential'
'modelProvider.auth.addModel': 'Add model'
'modelProvider.auth.addModelCredential': 'Add model credential'
'modelProvider.auth.addNewModel': 'Add new model'
'modelProvider.auth.addNewModelCredential': 'Add new model credential'
'modelProvider.auth.apiKeyModal.desc': 'After configuring credentials, all members within the workspace can use this model when orchestrating applications.'
'modelProvider.auth.apiKeyModal.title': 'API Key Authorization Configuration'
'modelProvider.auth.apiKeys': 'API Keys'
'modelProvider.auth.authRemoved': 'Auth removed'
'modelProvider.auth.authorizationError': 'Authorization error'
'modelProvider.auth.configLoadBalancing': 'Config Load Balancing'
'modelProvider.auth.configModel': 'Config model'
'modelProvider.auth.credentialRemoved': 'Credential removed'
'modelProvider.auth.customModelCredentials': 'Custom Model Credentials'
'modelProvider.auth.customModelCredentialsDeleteTip': 'Credential is in use and cannot be deleted'
'modelProvider.auth.editModelCredential': 'Edit model credential'
'modelProvider.auth.manageCredentials': 'Manage Credentials'
'modelProvider.auth.modelCredential': 'Model credential'
'modelProvider.auth.modelCredentials': 'Model credentials'
'modelProvider.auth.openAIResponsesAPITip': 'For GPT-5.6 and later models, we recommend using the Responses API.'
'modelProvider.auth.providerManaged': 'Provider managed'
'modelProvider.auth.providerManagedTip': 'The current configuration is hosted by the provider.'
'modelProvider.auth.removeModel': 'Remove Model'
'modelProvider.auth.selectModelCredential': 'Select a model credential'
'modelProvider.auth.specifyModelCredential': 'Specify model credential'
'modelProvider.auth.specifyModelCredentialTip': 'Use a configured model credential.'
'modelProvider.card.aiCreditsInUse': 'AI credits in use'
'modelProvider.card.aiCreditsOption': 'AI credits'
'modelProvider.card.apiKeyOption': 'API Key'
'modelProvider.card.apiKeyRequired': 'API key required'
'modelProvider.card.apiKeyUnavailableFallback': 'API Key unavailable, now using AI credits'
'modelProvider.card.apiKeyUnavailableFallbackDescription': 'Check your API key configuration to switch back'
'modelProvider.card.creditsExhaustedDescription': 'Please <upgradeLink>upgrade your plan</upgradeLink> or configure an API key'
'modelProvider.card.creditsExhaustedFallback': 'AI credits exhausted, now using API key'
'modelProvider.card.creditsExhaustedFallbackDescription': '<upgradeLink>Upgrade your plan</upgradeLink> to resume AI credit priority.'
'modelProvider.card.creditsExhaustedMessage': 'AI credits have been exhausted'
'modelProvider.card.modelAPI': '{{modelName}} models are using the API Key.'
'modelProvider.card.modelNotSupported': '{{modelName}} not installed'
'modelProvider.card.modelSupported': '{{modelName}} models are using these credits.'
'modelProvider.card.noApiKeysDescription': 'Add an API key to start using your own model credentials.'
'modelProvider.card.noApiKeysFallback': 'No API keys, using AI credits instead'
'modelProvider.card.noApiKeysTitle': 'No API keys configured yet'
'modelProvider.card.noAvailableUsage': 'No available usage'
'modelProvider.card.quotaExhausted': 'Credits exhausted'
'modelProvider.card.tip': 'AI Credits supports models from {{modelNames}}. Priority will be given to the paid quota. The Trial quota will be used after the paid quota is exhausted.'
'modelProvider.card.unavailable': 'Unavailable'
'modelProvider.card.usageLabel': 'Usage'
'modelProvider.card.usagePriority': 'Usage Priority'
'modelProvider.card.usagePriorityTip': 'Set which resource to use first when running models.'
'modelProvider.clearDefaultModel.description': 'This change takes effect when you save. Workflows that rely on this default model may then fail.'
'modelProvider.clearDefaultModel.title': 'Clear {{modelType}}?'
'modelProvider.configureTip': 'Set up api-key or add model to use'
'modelProvider.confirmDelete': 'Confirm deletion?'
'modelProvider.defaultConfig': 'Default Config'
'modelProvider.discoverMore': 'Discover more in'
'modelProvider.embeddingModel.key': 'Embedding Model'
'modelProvider.embeddingModel.required': 'Embedding Model is required'
'modelProvider.embeddingModel.tip': 'Set the default model for document embedding processing of the Knowledge, both retrieval and import of the Knowledge use this Embedding model for vectorization processing. Switching will cause the vector dimension between the imported Knowledge and the question to be inconsistent, resulting in retrieval failure. To avoid retrieval failure, please do not switch this model at will.'
'modelProvider.emptyProviderTip': 'Please install a model provider first.'
'modelProvider.emptyProviderTipWithMarketplace': 'Please install a model provider first. You can install models from the <marketplace>Marketplace</marketplace>.'
'modelProvider.emptyProviderTitle': 'Model provider not set up'
'modelProvider.encrypted.back': ' technology.'
'modelProvider.encrypted.front': 'Your API KEY will be encrypted and stored using'
'modelProvider.featureSupported': '{{feature}} supported'
'modelProvider.installDataSource': 'Install data source'
'modelProvider.installProvider': 'Install model providers'
'modelProvider.learnMore': 'Learn more'
'modelProvider.loadBalancing': 'Load balancing'
'modelProvider.loadBalancingDescription': 'Configure multiple credentials for the model and invoke them automatically. '
'modelProvider.loadBalancingInfo': 'By default, load balancing uses the Round-robin strategy. If rate limiting is triggered, a 1-minute cooldown period will be applied.'
'modelProvider.loadBalancingLeastKeyWarning': 'To enable load balancing at least 2 keys must be enabled.'
'modelProvider.loadPresets': 'Load Presets'
'modelProvider.model': 'Model'
'modelProvider.modelHasBeenDeprecated': 'This model has been deprecated'
'modelProvider.modelSettings': 'Model Settings'
'modelProvider.models': 'Models'
'modelProvider.modelsNum': '{{num}} Models'
'modelProvider.noneConfigured': 'Configure a default system model to run applications'
'modelProvider.pageDesc': "Connect the world's leading model providers to power every app you build."
'modelProvider.parameters': 'PARAMETERS'
'modelProvider.parametersInvalidRemoved': 'Some parameters are invalid and have been removed'
'modelProvider.providerManaged': 'Provider managed'
'modelProvider.quotaLabel': 'AI CREDITS'
'modelProvider.ranOutDate': 'Ran out on {{date}}'
'modelProvider.rerankModel.key': 'Rerank Model'
'modelProvider.rerankModel.tip': 'Rerank model will reorder the candidate document list based on the semantic match with user query, improving the results of semantic ranking'
'modelProvider.resetDate': 'Reset on {{date}}'
'modelProvider.searchModels': 'Search models...'
'modelProvider.selectModel': 'Select your model'
'modelProvider.selector.aiCredits': 'AI credits'
'modelProvider.selector.apiKeyUnavailable': 'API Key unavailable'
'modelProvider.selector.apiKeyUnavailableTip': 'The API key has been removed. Please configure a new API key.'
'modelProvider.selector.configure': 'Configure'
'modelProvider.selector.configureRequired': 'Configure required'
'modelProvider.selector.creditsExhausted': 'Credits exhausted'
'modelProvider.selector.creditsExhaustedTip': 'Your AI credits have been exhausted. Please upgrade your plan or add an API key.'
'modelProvider.selector.disabled': 'Disabled'
'modelProvider.selector.discoverMoreInMarketplace': 'Discover more in Marketplace'
'modelProvider.selector.fromMarketplace': 'From Marketplace'
'modelProvider.selector.hideIncompatibleModels': 'Hide incompatible models'
'modelProvider.selector.incompatible': 'Incompatible'
'modelProvider.selector.incompatibleTip': 'This model is not available in the current version. Please select another available model.'
'modelProvider.selector.install': 'Install'
'modelProvider.selector.modelProviderSettings': 'Model Provider Settings'
'modelProvider.selector.noModelFoundForSearch': 'No model found for “{{query}}”'
'modelProvider.selector.noProviderConfigured': 'No Model Provider configured'
'modelProvider.selector.noProviderConfiguredDesc': 'Browse Marketplace to install one, or configure providers in settings.'
'modelProvider.selector.onlyCompatibleModelsShown': 'Only compatible models are shown'
'modelProvider.selector.showIncompatibleModels': 'Show incompatible models'
'modelProvider.selector.suggestionTip': 'Recommended for agent tasks'
'modelProvider.showModels': 'Show Models'
'modelProvider.speechToTextModel.key': 'Speech-to-Text Model'
'modelProvider.speechToTextModel.tip': 'Set the default model for speech-to-text input in conversation.'
'modelProvider.systemModelSettings': 'Default Models'
'modelProvider.systemModelSettingsDesc': 'Set the default models used across your workspace when no specific model is configured.'
'modelProvider.systemModelSettingsTitle': 'Default Model Settings'
'modelProvider.systemReasoningModel.key': 'System Reasoning Model'
'modelProvider.systemReasoningModel.tip': 'Set the default reasoning model for creating applications. This model is also used for features such as conversation name generation and next question suggestions.'
'modelProvider.toBeConfigured': 'Configuration required'
'modelProvider.ttsModel.key': 'Text-to-Speech Model'
'modelProvider.ttsModel.tip': 'Set the default model for text-to-speech input in conversation.'
'modelProvider.upgradeForLoadBalancing': 'Upgrade your plan to enable Load Balancing.'
'modelProvider.used': 'used'
}
navigation: {
'common.workflowAsTool': 'Workflow as Tool'
'mainNav.help.creatorCenter': 'Creator Center'
'mainNav.help.docs': 'Documentation'
'mainNav.help.learnDify': 'Learn Dify'
'mainNav.help.openMenu': 'Open help menu'
'mainNav.help.stepByStepTour': 'Step-by-step Tour'
'mainNav.home': 'Home'
'mainNav.integrations': 'Integrations'
'mainNav.marketplace': 'Marketplace'
'mainNav.skills': 'Skills'
'mainNav.webApps.noResults': 'No web apps found'
'mainNav.webApps.searchPlaceholder': 'Search web apps'
'mainNav.workspace.creditsUnit': 'credits'
'mainNav.workspace.inviteMembers': 'Invite members'
'mainNav.workspace.noResults': 'No workspaces found'
'mainNav.workspace.openMenu': 'Open workspace menu'
'mainNav.workspace.searchPlaceholder': 'Search workspace'
'mainNav.workspace.settings': 'Workspace settings'
'mainNav.workspace.sort.createdTime': 'Created time'
'mainNav.workspace.sort.lastOpened': 'Last opened'
'mainNav.workspace.sort.openMenu': 'Sort workspaces'
'menus.account': 'Account'
'menus.appDetail': 'App Detail'
'menus.apps': 'Studio'
'menus.datasets': 'Knowledge'
'menus.exploreMarketplace': 'Explore Marketplace'
'menus.plugins': 'Integrations'
'menus.status': 'beta'
'menus.tools': 'Tools'
'settings.accessToken': 'Access Tokens'
'settings.accessTokenDescription': 'Create service API tokens for selected apps and knowledge bases.'
'settings.agentStrategy': 'Agent Strategy'
'settings.billing': 'Billing'
'settings.customEndpoint': 'Custom Endpoint'
'settings.dataSource': 'Data Source'
'settings.extension': 'Extension'
'settings.integrations': 'Integrations'
'settings.members': 'Members'
'settings.permissionSet': 'Permission Set'
'settings.permissionSetDescription': 'Configure permission sets for use with applications and knowledge bases. A permission set is a reusable collection of resource operation permissions that can be assigned to members for specific resources.'
'settings.preferences': 'Preferences'
'settings.provider': 'Model Provider'
'settings.resourceAccess': 'Resource Access'
'settings.rolesAndPermissions': 'Roles & Permissions'
'settings.settings': 'Settings'
'settings.swaggerAPIAsTool': 'Swagger API as Tool'
'settings.trigger': 'Trigger'
'settings.workspace': 'WORKSPACE'
'toolsPage.description': 'All tools available in your workspace — both built-in and installed from the Marketplace.'
'toolsPage.toolPlugin': 'Tool Plugin'
}
oauth: {
'callback.error': 'Authorization failed'
'callback.errorHint': 'Please return to the previous page and try again.'
'callback.success': 'Authorization complete'
'callback.successHint': 'You can now close this tab and return to the previous page.'
connect: 'Connect to'
continue: 'Continue'
'error.authAppInfoFetchFailed': 'Failed to fetch app info for authorization'
'error.authorizeFailed': 'Authorization failed'
'error.invalidParams': 'Invalid parameters'
login: 'Login'
'scopes.avatar': 'Avatar'
'scopes.email': 'Email'
'scopes.languagePreference': 'Language Preference'
'scopes.name': 'Name'
'scopes.timezone': 'Timezone'
switchAccount: 'Switch Account'
'tips.common': 'We respect your privacy and will only use this information to enhance your experience with our developer tools.'
'tips.loggedIn': 'This app wants to access the following information from your Dify Cloud account.'
'tips.needLogin': 'Please log in to authorize'
'tips.notLoggedIn': 'This app wants to access your Dify Cloud account'
unknownApp: 'Unknown App'
}
onboarding: {
'stepByStepTour.completion.description': 'You’ve seen the essentials. Time to build something.'
'stepByStepTour.completion.dismiss': 'Dismiss'
'stepByStepTour.completion.label': 'Step-by-step Tour completed'
'stepByStepTour.completion.title': 'You’re all set'
'stepByStepTour.duration': 'A quick tour — about 5 minutes'
'stepByStepTour.guides.home.create.description': 'Click here to make it yours'
'stepByStepTour.guides.home.noCreate.description': 'You can review lessons here and learn how Dify works. To create an app from a lesson, switch to a workspace where you have create permission, or contact your Workspace Owner or Admin.'
'stepByStepTour.guides.home.noCreate.title': 'Browse Learn Dify'
'stepByStepTour.guides.home.pick.description': 'Pick a lesson to see how it works.'
'stepByStepTour.guides.integration.dataSource.description': 'Connect data sources here so Knowledge can bring in content from Drive, Notion, GitHub, Firecrawl, and more.'
'stepByStepTour.guides.integration.dataSource.title': 'Data Source'
'stepByStepTour.guides.integration.limitedAccess.dataSource.description': 'Connect data sources here so Knowledge can import content from Drive, Notion, GitHub, Firecrawl, and more. To set them up, switch to a workspace where you have permission, or contact your Workspace Owner or Admin.'
'stepByStepTour.guides.integration.limitedAccess.mcp.description': 'View connected MCP servers that expose external tools and services to apps. To add or edit servers, switch to a workspace where you have permission, or contact your Workspace Owner or Admin.'
'stepByStepTour.guides.integration.limitedAccess.modelProvider.description': 'View model providers, model credentials, and Message Credits here. To install or change providers, contact your Workspace Owner or Admin.'
'stepByStepTour.guides.integration.limitedAccess.toolPlugin.description': 'Browse installed tools and Marketplace plugins that apps can call during execution. To install or configure one, contact your Workspace Owner or Admin.'
'stepByStepTour.guides.integration.limitedAccess.trigger.description': 'View triggers that turn third-party events into app inputs. To create or manage triggers, switch to a workspace where you have permission, or contact your Workspace Owner or Admin.'
'stepByStepTour.guides.integration.mcp.description': 'Connect MCP servers when your apps need access to external tools and services through MCP.'
'stepByStepTour.guides.integration.mcp.title': 'MCP'
'stepByStepTour.guides.integration.modelProvider.description': 'Manage or install model providers here, set up model credentials, and check your Message Credits.'
'stepByStepTour.guides.integration.modelProvider.title': 'Model Provider'
'stepByStepTour.guides.integration.toolPlugin.description': 'Manage built-in tools and marketplace plugins that apps can call during execution.'
'stepByStepTour.guides.integration.toolPlugin.title': 'Tool Plugin'
'stepByStepTour.guides.integration.trigger.description': 'Use triggers to turn third-party events into inputs your apps can recognize and act on automatically.'
'stepByStepTour.guides.integration.trigger.title': 'Trigger'
'stepByStepTour.guides.integration.updateSettings.description': 'Configure how integrations update automatically, including the update mode, scheduled time, and which integrations are included.'
'stepByStepTour.guides.integration.updateSettings.title': 'Update Settings'
'stepByStepTour.guides.knowledge.empty.connect.description': 'Already have a knowledge base elsewhere? Connect it via API — no data migration needed.'
'stepByStepTour.guides.knowledge.empty.connect.title': 'Connect to an external knowledge base'
'stepByStepTour.guides.knowledge.empty.create.description': 'Fastest way to get going. Upload documents and Dify handles chunking, indexing, and embedding for you. You can switch to custom anytime.'
'stepByStepTour.guides.knowledge.empty.create.title': 'Create a ready-to-use knowledge base'
'stepByStepTour.guides.knowledge.empty.pipeline.description': 'Define your own chunking, cleanup, and indexing flow when you need finer control over how documents become searchable.'
'stepByStepTour.guides.knowledge.empty.pipeline.title': 'Build a custom knowledge base'
'stepByStepTour.guides.knowledge.withDatasets.create.description': 'Use Create to add a new knowledge base — start ready-to-use, build a custom one from your documents, or connect to an external knowledge base.'
'stepByStepTour.guides.knowledge.withDatasets.create.title': 'Create a new knowledge base'
'stepByStepTour.guides.knowledge.withDatasets.manage.description': 'Tap any knowledge base to open its document management page — update documents, retrieval settings, and access from there.'
'stepByStepTour.guides.knowledge.withDatasets.manage.title': 'Open and manage each knowledge base'
'stepByStepTour.guides.primaryActionLabel': 'Got it'
'stepByStepTour.guides.studio.empty.blank.description': 'Start from an empty canvas when you already know what to build.'
'stepByStepTour.guides.studio.empty.blank.title': 'Create from blank'
'stepByStepTour.guides.studio.empty.dsl.description': 'Import an app package or DSL file to restore a shared or backed-up app.'
'stepByStepTour.guides.studio.empty.dsl.title': 'Import App'
'stepByStepTour.guides.studio.empty.learnDify.description': "New to Dify? Walk through a guided lesson first — you'll see Workflows, Agents, and more in action."
'stepByStepTour.guides.studio.empty.learnDify.title': 'Or start with Learn Dify'
'stepByStepTour.guides.studio.empty.template.description': "Browse Dify's templates and pick one that matches what you want to build. Great way to start without writing anything from scratch."
'stepByStepTour.guides.studio.empty.template.title': 'Create from a template'
'stepByStepTour.guides.studio.noCreate.empty.description': 'You can view apps in this workspace, but there are no apps here yet. To create or edit apps, switch workspaces or ask your Workspace Owner or Admin for access.'
'stepByStepTour.guides.studio.noCreate.empty.title': 'No apps to view yet'
'stepByStepTour.guides.studio.noCreate.withApps.description': 'You can browse apps in this workspace. To create or edit apps, switch to a workspace where you have permission, or contact your Workspace Owner or Admin.'
'stepByStepTour.guides.studio.noCreate.withApps.title': 'Studio is view-only for you'
'stepByStepTour.guides.studio.withApps.create.description': 'Use Create to add a new app — pick from a template, start from blank, or import an app package or DSL file.'
'stepByStepTour.guides.studio.withApps.create.title': 'Create a new app'
'stepByStepTour.guides.studio.withApps.manage.description': 'Tap any app to open its orchestration page — edit prompts, models, and logic, or manage its settings from there.'
'stepByStepTour.guides.studio.withApps.manage.title': 'Open and manage each app'
'stepByStepTour.learnMore': 'Learn more'
'stepByStepTour.markTaskComplete': 'Mark {{title}} complete'
'stepByStepTour.markTaskIncomplete': 'Mark {{title}} incomplete'
'stepByStepTour.minimize': 'Minimize'
'stepByStepTour.progressAriaValueText': '{{completed}} of {{total}} steps completed'
'stepByStepTour.skip': 'Skip tour'
'stepByStepTour.skipRecovery.dismiss': 'Got it'
'stepByStepTour.skipRecovery.label': 'Step-by-step Tour recovery tip'
'stepByStepTour.skipRecovery.message': 'Tour hidden. Turn it back on anytime in Help → Step-by-step Tour.'
'stepByStepTour.stepLabel': '{{current}} of {{total}}'
'stepByStepTour.tasks.home.description': 'Open a hands-on lesson from Learn Dify to see Dify in action.'
'stepByStepTour.tasks.home.noCreate.description': 'You can review lessons here and learn how Dify works. To create an app from a lesson, switch to a workspace where you have create permission, or contact your Workspace Owner or Admin.'
'stepByStepTour.tasks.home.noCreate.title': 'Browse Learn Dify'
'stepByStepTour.tasks.home.primaryActionLabel': 'Take a look'
'stepByStepTour.tasks.home.title': 'Try a Learn Dify lesson'
'stepByStepTour.tasks.integration.description': 'Models, tools, data sources & more — explore what you can connect.'
'stepByStepTour.tasks.integration.noPermission.description': 'Browse models, tools, data sources, and triggers. To create or manage integrations, switch to a workspace where you have permission, or contact your Workspace Owner or Admin.'
'stepByStepTour.tasks.integration.noPermission.title': 'Explore Integrations'
'stepByStepTour.tasks.integration.primaryActionLabel': 'Take a look'
'stepByStepTour.tasks.integration.title': 'Explore integrations'
'stepByStepTour.tasks.knowledge.description': 'Build a knowledge base so your apps answer from your documents.'
'stepByStepTour.tasks.knowledge.noPermission.description': 'To create or manage knowledge bases, switch to a workspace where you have permission, or contact your Workspace Owner or Admin.'
'stepByStepTour.tasks.knowledge.noPermission.primaryActionLabel': 'Got it'
'stepByStepTour.tasks.knowledge.noPermission.title': 'Knowledge needs permission'
'stepByStepTour.tasks.knowledge.primaryActionLabel': 'Take a look'
'stepByStepTour.tasks.knowledge.title': 'Add your own data'
'stepByStepTour.tasks.studio.description': 'All your apps live in Studio — edit, organize, and publish them here.'
'stepByStepTour.tasks.studio.noCreate.description': 'You can browse apps in this workspace. To create or edit apps, switch to a workspace where you have permission, or contact your Workspace Owner or Admin.'
'stepByStepTour.tasks.studio.noCreate.title': 'Find your apps in Studio'
'stepByStepTour.tasks.studio.primaryActionLabel': 'Take a look'
'stepByStepTour.tasks.studio.title': 'Manage your apps in Studio'
'stepByStepTour.title': 'Get to know Dify'
}
permission: {
'accessRule.accessPermission': 'Access permission'
'accessRule.actions': 'Actions'
'accessRule.addMembersTitle': 'Add members'
'accessRule.agentDescription': 'Manage who can access this agent and their permissions.'
'accessRule.agentTitle': 'Agent Permission Set'
'accessRule.allowedMembers': 'Allowed members'
'accessRule.appDescription': 'Set who can access this app and the granularity of access permissions.'
'accessRule.appTitle': 'App Permission Set'
'accessRule.automaticallyIncludeWorkspaceMembers': 'Automatically include workspace members'
'accessRule.automaticallyIncludeWorkspaceMembersDescription': 'All current and future workspace members are automatically included. Role permissions still determine what they can do.'
'accessRule.batchRemoveDescription': 'The selected members will be removed from the allowed members list.'
'accessRule.batchRemoveTitle': 'Remove selected members?'
'accessRule.collaborator': 'Collaborator'
'accessRule.collapseSection': 'Collapse {{title}}'
'accessRule.copied': 'Access rule copied successfully'
'accessRule.created': 'Access rule created successfully'
'accessRule.datasetDescription': 'Control who this knowledge base is open to. Members still need role permissions to view or operate it.'
'accessRule.datasetTitle': 'Knowledge Base Permission Set'
'accessRule.defaultPermission': 'By role permissions'
'accessRule.deleteDescription': 'This access rule will be permanently deleted and removed from the resource authorization list.'
'accessRule.deleteTitle': 'Delete "{{name}}"?'
'accessRule.exceptionPermissionFor': 'Exception permission for {{name}}'
'accessRule.expandSection': 'Expand {{title}}'
'accessRule.maintainer': 'Maintainer'
'accessRule.newPermissionSet': 'New permission set'
'accessRule.noAvailableMembers': 'No members available to add'
'accessRule.noDescription': 'No description'
'accessRule.noRules': 'No access rules'
'accessRule.noUserAccessSettings': 'No members are allowed access'
'accessRule.selected': 'Selected'
'accessRule.summary': '{{count}} permission set' | '{{count}} permission sets'
'accessRule.updated': 'Access rule updated successfully'
'accessRule.workspaceAdmin': 'Workspace Admin'
'accessRule.workspaceOwner': 'Workspace Owner'
'common.duplicateAction': 'Duplicate'
'group.agent': 'Agents'
'group.agent_acl': 'Agent access permissions'
'group.app': 'Applications'
'group.app_acl': 'App access permissions'
'group.billing': 'Billing'
'group.credential': 'Credentials'
'group.dataset': 'Knowledge bases'
'group.dataset_acl': 'Knowledge base access permissions'
'group.integration': 'Integrations'
'group.plugin': 'Plugins'
'group.tool_mcp': 'Tools and MCP'
'group.workspace': 'Workspace'
'permissionList.clearAll': 'Clear all'
'permissionList.collapseGroup': 'Collapse group'
'permissionList.expandGroup': 'Expand group'
'permissionList.noPermissionsFound': 'No permissions found'
'permissionList.selectAll': 'Select all'
'permissionSet.descriptionLabel': 'Description'
'permissionSet.descriptionPlaceholder': 'Describe what this permission set grants'
'permissionSet.learnMore': 'Learn more about permissions'
'permissionSet.modal.create.agent.description': 'Create an agent permission set that can be referenced in access rules for quick authorization.'
'permissionSet.modal.create.agent.title': 'Create Agent permission set'
'permissionSet.modal.create.app.description': 'Create an app permission set that can be referenced in access rules for quick authorization.'
'permissionSet.modal.create.app.title': 'Create App permission set'
'permissionSet.modal.create.dataset.description': 'Create a knowledge base permission set that can be referenced in access rules for quick authorization.'
'permissionSet.modal.create.dataset.title': 'Create Knowledge Base permission set'
'permissionSet.modal.edit.agent.description': 'Modify the name, description, and permissions granted for this permission set.'
'permissionSet.modal.edit.agent.title': 'Edit Agent permission set'
'permissionSet.modal.edit.app.description': 'Modify the name, description, and permissions granted for this permission set.'
'permissionSet.modal.edit.app.title': 'Edit App permission set'
'permissionSet.modal.edit.dataset.description': 'Modify the name, description, and permissions granted for this permission set.'
'permissionSet.modal.edit.dataset.title': 'Edit Knowledge Base permission set'
'permissionSet.modal.view.agent.description': 'View the name, description, and permissions granted for this permission set.'
'permissionSet.modal.view.agent.title': 'View Agent permission set'
'permissionSet.modal.view.app.description': 'View the name, description, and permissions granted for this permission set.'
'permissionSet.modal.view.app.title': 'View App permission set'
'permissionSet.modal.view.dataset.description': 'View the name, description, and permissions granted for this permission set.'
'permissionSet.modal.view.dataset.title': 'View Knowledge Base permission set'
'permissionSet.nameLabel': 'Permission set name'
'permissionSet.namePlaceholder': 'e.g. Operations permission set'
'permissionSet.permissions': 'Permissions'
'role.addRole': 'Create roles'
'role.copyMembersDescription':
| '"{{name}}" is assigned to {{count}} member. Do you want the new role copy to include the same member?'
| '"{{name}}" is assigned to {{count}} members. Do you want the new role copy to include the same members?'
'role.copyMembersLoading': 'Loading member assignments...'
'role.copyMembersTitle': 'Copy member assignments?'
'role.deleteDescription': 'This role will be permanently deleted and removed from any members or access rules that use it.'
'role.deleteTitle': 'Delete "{{name}}"?'
'role.groups.builtin': 'System Roles'
'role.groups.custom': 'Custom Roles'
'role.loading': 'Loading roles...'
'role.modal.create.description': 'Create a role and assign permissions'
'role.modal.create.title': 'Create Role'
'role.modal.descriptionLabel': 'Description'
'role.modal.descriptionPlaceholder': 'Describe what this role is responsible for'
'role.modal.edit.description': 'Edit role details and permissions'
'role.modal.edit.title': 'Edit Role'
'role.modal.nameLabel': 'Role name'
'role.modal.namePlaceholder': 'e.g. Marketing Lead'
'role.modal.view.description': 'View role details and permissions'
'role.modal.view.title': 'View Role'
'role.noDescription': 'No description'
'role.noMatchingRoles': 'No matching roles'
'role.searchPlaceholder': 'Search roles...'
'role.workspaceRoles.description': 'Create roles and define what each role can do in this workspace.'
'role.workspaceRoles.title': 'Workspace Roles'
}
permissionKeys: {
'agent.acl.access_config': 'View and manage access permissions'
'agent.acl.access_point_manage': 'Manage access points'
'agent.acl.access_point_view': 'View access points'
'agent.acl.delete': 'Delete agent'
'agent.acl.edit': 'Edit agent information and configuration'
'agent.acl.import_export_dsl': 'Import and export agents'
'agent.acl.log_manage': 'View and manage logs'
'agent.acl.monitor': 'View agent monitoring'
'agent.acl.preview': 'View agent basic information'
'agent.acl.release_and_version': 'Publish and manage agent versions'
'agent.acl.test_and_run': 'Test and run agent'
'agent.create': 'Create agents'
'api_extension.manage': 'Manage API extension configuration'
'app.access_config': 'Configure app access permissions'
'app.acl.access_config': 'View and manage access permissions'
'app.acl.access_point_manage': 'Manage access points'
'app.acl.access_point_view': 'View access points'
'app.acl.delete': 'Delete app'
'app.acl.deploy': 'Deploy app'
'app.acl.edit': 'Edit app information and orchestrate app'
'app.acl.import_export_dsl': 'Import and export apps'
'app.acl.log_and_annotation': 'View and manage logs and annotations'
'app.acl.monitor': 'View app monitoring'
'app.acl.preview': 'Preview app'
'app.acl.release_and_version': 'Publish and manage app versions'
'app.acl.test_and_run': 'Test and use app'
'app.acl.tracing_config': 'View and configure app monitoring traces'
'app.acl.view_layout': 'View app orchestration'
'app.create_and_management': 'Create apps'
'app.tag.manage': 'Manage app tags'
'app_library.access': 'View and use App Library'
'billing.manage': 'Change subscription plans'
'billing.subscription.manage': 'Manage billing and subscriptions in the billing portal'
'billing.view': 'Access Billing settings'
'credential.create': 'Add credentials'
'credential.manage': 'Edit and delete credentials'
'credential.use': 'View and use credentials'
'customization.manage': 'Manage customization'
'data_source.manage': 'Manage data source configuration'
'dataset.access_config': 'Configure knowledge base access permissions'
'dataset.acl.access_config': 'View and manage knowledge base access permissions'
'dataset.acl.delete': 'Delete knowledge base'
'dataset.acl.delete_file': 'Delete knowledge base documents'
'dataset.acl.document_download': 'Download knowledge base documents'
'dataset.acl.edit': 'Edit knowledge base content and settings'
'dataset.acl.import_export_dsl': 'Import and export pipeline DSL'
'dataset.acl.pipeline_release': 'Publish and manage pipeline versions'
'dataset.acl.pipeline_test': 'Test pipeline'
'dataset.acl.preview': 'Preview knowledge base'
'dataset.acl.readonly': 'View knowledge base content and settings'
'dataset.acl.retrieval_recall': 'View and run retrieval tests'
'dataset.acl.use': 'Upload knowledge base documents'
'dataset.api_key.manage': 'Manage knowledge base API keys'
'dataset.create_and_management': 'Create knowledge bases'
'dataset.external.connect': 'Connect external knowledge bases'
'dataset.tag.manage': 'Manage knowledge base tags'
'mcp.manage': 'Manage MCP'
'plugin.debug': 'Debug plugins'
'plugin.delete': 'Delete plugins'
'plugin.install': 'Install and update plugins'
'plugin.model_config': 'Configure models'
'plugin.plugin_preferences': 'Configure auto updates'
'skill.delete': 'Delete Skill'
'skill.edit': 'Edit Skill'
'skill.publish': 'Publish Skill'
'skill.view': 'View Skill'
'snippets.create_and_modify': 'Create and modify snippets'
'snippets.management': 'Manage snippets'
'tool.manage': 'Manage tools'
'workspace.member.manage': 'Manage members'
'workspace.role.manage': 'Manage roles and permission sets'
}
pipeline: {
'common.confirmPublish': 'Confirm Publish'
'common.confirmPublishContent': 'After successfully publishing the knowledge pipeline, the chunk structure of this knowledge base cannot be modified. Are you sure you want to publish it?'
'common.goToAddDocuments': 'Go to add documents'
'common.preparingDataSource': 'Preparing Data Source'
'common.processing': 'Processing'
'common.publishAs': 'Publish as a Knowledge Pipeline'
'common.publishAsPipeline.description': 'Knowledge description'
'common.publishAsPipeline.descriptionPlaceholder': 'Please enter the description of this Knowledge Pipeline. (Optional) '
'common.publishAsPipeline.name': 'Pipeline name & icon'
'common.publishAsPipeline.namePlaceholder': 'Please enter the name of this Knowledge Pipeline. (Required) '
'common.reRun': 'Re-run'
'common.testRun': 'Test Run'
'inputField.create': 'Create user input field'
'inputField.manage': 'Manage'
'publishToast.desc': 'When the pipeline is not published, you can modify the chunk structure in the knowledge base node, and the pipeline orchestration and changes will be automatically saved as a draft.'
'publishToast.title': 'This pipeline has not yet been published'
'ragToolSuggestions.noRecommendationPlugins': 'No recommended integrations, find more in <CustomLink>Marketplace</CustomLink>'
'ragToolSuggestions.title': 'Suggestions for RAG'
'result.resultPreview.error': 'Error occurred during execution'
'result.resultPreview.footerTip': 'In test run mode, preview up to {{count}} chunks'
'result.resultPreview.loading': 'Processing...Please wait'
'result.resultPreview.viewDetails': 'View details'
}
plugin: {
'action.checkForUpdates': 'Check for updates'
'action.delete': 'Remove integration'
'action.deleteContentLeft': 'Would you like to remove '
'action.deleteContentRight': ' integration?'
'action.pluginInfo': 'Integration info'
allCategories: 'All Categories'
'auth.addApi': 'Add API Key'
'auth.addOAuth': 'Add OAuth'
'auth.authRemoved': 'Auth removed'
'auth.authorization': 'Authorization'
'auth.authorizationName': 'Authorization Name'
'auth.authorizations': 'Authorizations'
'auth.authorize': 'Authorize'
'auth.clientInfo': 'As no system client secrets found for this tool provider, setup it manually is required, for redirect_uri, please use'
'auth.connectedWorkspace': 'Connected Workspace'
'auth.credentialUnavailable': 'Credentials currently unavailable. Please contact admin.'
'auth.credentialUnavailableInButton': 'Credential unavailable'
'auth.custom': 'Custom'
'auth.customCredentialUnavailable': 'Custom credentials currently unavailable'
'auth.default': 'Default'
'auth.emptyAuth': 'Please configure authentication'
'auth.enterprise': 'Enterprise'
'auth.oauthClient': 'OAuth Client'
'auth.oauthClientSettings': 'OAuth Client Settings'
'auth.oauthCredentialPermissionDescription': "Choose whether the new OAuth credential is only for you or shared with all workspace members. This setting applies to the credential, not the OAuth client, and can't be changed after authorization."
'auth.onlyAtCreationHintTooltip': 'Configured by other members · Cannot be selected again after switching.'
'auth.permissionHint.action': 'Who can help?'
'auth.permissionHint.description': 'Plugin authorization is shared across the workspace. Contact a member with the required permissions for help.'
'auth.permissionHint.title': 'You don’t have permission to configure authorization.'
'auth.saveAndAuth': 'Save and Authorize'
'auth.saveOnly': 'Save only'
'auth.setDefault': 'Set as default'
'auth.setupOAuth': 'Setup OAuth Client'
'auth.unavailable': 'Unavailable'
'auth.useApiAuth': 'API Key Authorization Configuration'
'auth.useApiAuthDesc': 'After configuring credentials, all members within the workspace can use this tool when orchestrating applications.'
'auth.useOAuthAuth': 'Use OAuth Authorization'
'auth.whoCanUse': 'Who can use'
'auth.workspaceDefault': 'Workspace Default'
'autoUpdate.autoUpdate': 'Auto-update'
'autoUpdate.autoUpdateSettings': 'Auto-update Settings'
'autoUpdate.changeTimezone': 'To change time zone, go to <setTimezone>Settings</setTimezone>'
'autoUpdate.excludeUpdate':
| 'The following {{num}} integrations will not auto-update'
| 'The following {{num}} integration will not auto-update'
| 'The following {{num}} integrations will not auto-update'
'autoUpdate.nextUpdateTime': 'Next auto-update: {{time}}'
'autoUpdate.noPluginPlaceholder.noFound': 'No integrations were found'
'autoUpdate.noPluginPlaceholder.noInstalled': 'No integrations installed'
'autoUpdate.operation.clearAll': 'Clear all'
'autoUpdate.operation.select': 'Select integrations'
'autoUpdate.partialUPdate':
| 'Only the following {{num}} integrations will auto-update'
| 'Only the following {{num}} integration will auto-update'
| 'Only the following {{num}} integrations will auto-update'
'autoUpdate.pluginDowngradeWarning.description': 'Auto-update is currently enabled for this integration. Downgrading the version may cause your changes to be overwritten during the next automatic update.'
'autoUpdate.pluginDowngradeWarning.downgrade': 'Downgrade anyway'
'autoUpdate.pluginDowngradeWarning.exclude': 'Exclude from auto-update'
'autoUpdate.pluginDowngradeWarning.title': 'Integration Downgrade'
'autoUpdate.scope': 'Scope'
'autoUpdate.scopeMode.all': 'All'
'autoUpdate.scopeMode.exclude': 'Exclude selected'
'autoUpdate.strategy.disabled.description': "Plugins won't update automatically"
'autoUpdate.strategy.disabled.name': 'Disabled'
'autoUpdate.strategy.fixOnly.description': 'Auto-update for patch versions only (e.g., 1.0.1 → 1.0.2)'
'autoUpdate.strategy.fixOnly.name': 'Fix only'
'autoUpdate.strategy.latest.description': 'Always update to latest version'
'autoUpdate.strategy.latest.name': 'Latest'
'autoUpdate.updateTime': 'Update time'
'autoUpdate.upgradeMode.partial': 'Only selected'
'autoUpdate.upgradeModePlaceholder.exclude': 'Selected integrations will not auto-update'
'autoUpdate.upgradeModePlaceholder.partial': 'Only selected integrations will auto-update. No integrations are currently selected, so no integrations will auto-update.'
'category.agents': 'Agent Strategies'
'category.all': 'All'
'category.bundles': 'Bundles'
'category.datasources': 'Data Sources'
'category.extensions': 'Extensions'
'category.models': 'Models'
'category.tools': 'Tools'
'category.triggers': 'Triggers'
'categorySingle.agent': 'Agent Strategy'
'categorySingle.bundle': 'Bundle'
'categorySingle.datasource': 'Data Source'
'categorySingle.extension': 'Extension'
'categorySingle.model': 'Model'
'categorySingle.tool': 'Tool'
'categorySingle.trigger': 'Trigger'
clearSearch: 'Clear {{label}}'
'debugInfo.title': 'Debugging'
'debugInfo.viewDocs': 'View Docs'
deprecated: 'Deprecated'
'detailPanel.actionNum': '{{num}} {{action}} INCLUDED'
'detailPanel.categoryTip.debugging': 'Debugging Integration'
'detailPanel.categoryTip.github': 'Installed from Github'
'detailPanel.categoryTip.local': 'Local Integration'
'detailPanel.categoryTip.marketplace': 'Installed from Marketplace'
'detailPanel.configureModel': 'Configure model'
'detailPanel.configureTool': 'Configure tool'
'detailPanel.deprecation.fullMessage': "This integration has been deprecated due to {{deprecatedReason}}, and will no longer be updated. Please use <CustomLink href='https://example.com/'>{{-alternativePluginId}}</CustomLink> instead."
'detailPanel.deprecation.noReason': 'This integration has been deprecated and will no longer be updated.'
'detailPanel.deprecation.onlyReason': 'This integration has been deprecated due to {{deprecatedReason}} and will no longer be updated.'
'detailPanel.deprecation.reason.businessAdjustments': 'business adjustments'
'detailPanel.deprecation.reason.noMaintainer': 'no maintainer'
'detailPanel.deprecation.reason.ownershipTransferred': 'ownership transferred'
'detailPanel.disabled': 'Disabled'
'detailPanel.endpointDeleteContent': 'Would you like to remove {{name}}? '
'detailPanel.endpointDeleteTip': 'Remove Endpoint'
'detailPanel.endpointDisableContent': 'Would you like to disable {{name}}? '
'detailPanel.endpointDisableTip': 'Disable Endpoint'
'detailPanel.endpointModalDesc': 'Once configured, the features provided by the integration via API endpoints can be used.'
'detailPanel.endpointModalTitle': 'Setup endpoint'
'detailPanel.endpoints': 'Endpoints'
'detailPanel.endpointsDocLink': 'View the document'
'detailPanel.endpointsEmpty': "Click the '+' button to add an endpoint"
'detailPanel.endpointsTip': 'This integration provides specific functionalities via endpoints, and you can configure multiple endpoint sets for current workspace.'
'detailPanel.modelNum': '{{num}} MODELS INCLUDED'
'detailPanel.operation.back': 'Back'
'detailPanel.operation.checkUpdate': 'Check Update'
'detailPanel.operation.detail': 'Details'
'detailPanel.operation.info': 'Integration Info'
'detailPanel.operation.install': 'Install'
'detailPanel.operation.moreActions': 'More actions'
'detailPanel.operation.remove': 'Remove'
'detailPanel.operation.update': 'Update'
'detailPanel.operation.updateTooltip': 'Update to access the latest models.'
'detailPanel.operation.viewDetail': 'View on Marketplace'
'detailPanel.operation.viewReadme': 'View README'
'detailPanel.serviceOk': 'Service OK'
'detailPanel.strategyNum': '{{num}} {{strategy}} INCLUDED'
'detailPanel.switchVersion': 'Switch Version'
'detailPanel.toolSelector.auto': 'Auto'
'detailPanel.toolSelector.descriptionLabel': 'Tool description'
'detailPanel.toolSelector.descriptionPlaceholder': "Brief description of the tool's purpose, e.g., get the temperature for a specific location."
'detailPanel.toolSelector.empty': "Click the '+' button to add tools. You can add multiple tools."
'detailPanel.toolSelector.params': 'REASONING CONFIG'
'detailPanel.toolSelector.paramsTip1': 'Controls LLM inference parameters.'
'detailPanel.toolSelector.paramsTip2': "When 'Auto' is off, the default value is used."
'detailPanel.toolSelector.placeholder': 'Select a tool...'
'detailPanel.toolSelector.settings': 'USER SETTINGS'
'detailPanel.toolSelector.title': 'Add tool'
'detailPanel.toolSelector.toolLabel': 'Tool'
'detailPanel.toolSelector.toolSetting': 'Tool Settings'
'detailPanel.toolSelector.uninstalledContent': 'This integration is installed from the local/GitHub repository. Please use after installation.'
'detailPanel.toolSelector.uninstalledLink': 'Manage in Integrations'
'detailPanel.toolSelector.uninstalledTitle': 'Tool not installed'
'detailPanel.toolSelector.unsupportedContent': 'The installed integration version does not provide this action.'
'detailPanel.toolSelector.unsupportedContent2': 'Click to switch version.'
'detailPanel.toolSelector.unsupportedMCPTool': 'Currently selected Agent Strategy integration version does not support MCP tools.'
'detailPanel.toolSelector.unsupportedTitle': 'Unsupported Action'
difyVersionNotCompatible: 'The current Dify version is not compatible with this integration, please upgrade to the minimum version required: {{minimalDifyVersion}}'
endpointsEnabled: '{{num}} endpoints enabled'
'error.fetchReleasesError': 'Unable to retrieve releases. Please try again later.'
'error.inValidGitHubUrl': 'Invalid GitHub URL. Please enter a valid URL in the format: https://github.com/owner/repo'
'error.noReleasesFound': 'No releases found. Please check the GitHub repository or the input URL.'
findMoreInMarketplace: 'Find more in Marketplace'
from: 'From'
fromMarketplace: 'From Marketplace'
install: '{{num}} installs'
installAction: 'Install'
installFrom: 'INSTALL FROM'
'installFromGitHub.gitHubRepo': 'GitHub repository'
'installFromGitHub.installFailed': 'Installation failed'
'installFromGitHub.installNote': 'Please make sure that you only install integrations from a trusted source.'
'installFromGitHub.installPlugin': 'Install integration from GitHub'
'installFromGitHub.installedSuccessfully': 'Installation successful'
'installFromGitHub.selectPackage': 'Select package'
'installFromGitHub.selectPackagePlaceholder': 'Please select a package'
'installFromGitHub.selectVersion': 'Select version'
'installFromGitHub.selectVersionPlaceholder': 'Please select a version'
'installFromGitHub.updatePlugin': 'Update integration from GitHub'
'installFromGitHub.uploadFailed': 'Upload failed'
'installModal.back': 'Back'
'installModal.cancel': 'Cancel'
'installModal.fromTrustSource': 'Please make sure that you only install integrations from a <trustSource>trusted source</trustSource>.'
'installModal.install': 'Install'
'installModal.installFailed': 'Installation failed'
'installModal.installFailedDesc': 'The integration failed to install.'
'installModal.installPlugin': 'Install Integration'
'installModal.installWarning': 'This integration is not allowed to be installed.'
'installModal.installedSuccessfully': 'Installation successful'
'installModal.installedSuccessfullyCountDesc': 'The following {{num}} integrations have been installed successfully.'
'installModal.installedSuccessfullyDesc': 'The integration has been installed successfully.'
'installModal.installedSuccessfullyWithPageDesc': 'The integration has been installed successfully. You can find it on the <categoryName>{{categoryName}}</categoryName> page.'
'installModal.installing': 'Installing...'
'installModal.next': 'Next'
'installModal.pluginLoadError': 'Integration load error'
'installModal.pluginLoadErrorDesc': 'This integration will not be installed'
'installModal.readyToInstall': 'About to install the following integration'
'installModal.readyToInstallPackage': 'About to install the following integration'
'installModal.readyToInstallPackages': 'About to install the following {{num}} integrations'
'installModal.uploadFailed': 'Upload failed'
'installModal.uploadingPackage': 'Uploading {{packageName}}...'
'installModal.viewDetails': 'View Details'
installPlugin: 'Install integration'
'list.emptyInstallFromMarketplace': 'You can install {{category}} from the <marketplace>Marketplace</marketplace>.'
'list.noAgentStrategyFound': 'No Agent Strategy found'
'list.noExtensionFound': 'No Extension found'
'list.noInstalled': 'No integrations installed'
'list.noTriggerFound': 'No Trigger found'
'list.notFound': 'No integrations found'
'list.source.marketplace': 'Install from Marketplace'
'marketplace.allPlugins': 'All integrations'
'marketplace.and': 'and'
'marketplace.becomePartner': 'Become a Partner'
'marketplace.by': 'by'
'marketplace.carousel.goToPage': 'Go to page {{page}}'
'marketplace.carousel.scrollNext': 'Next page'
'marketplace.carousel.scrollPrevious': 'Previous page'
'marketplace.creatorProfile.breadcrumbLabel': 'Breadcrumb'
'marketplace.creatorProfile.creations': 'Creations'
'marketplace.creatorProfile.empty': 'No creations yet.'
'marketplace.creatorProfile.home': 'Marketplace home'
'marketplace.creatorProfile.loadMore': 'Load more'
'marketplace.creatorProfile.loadMoreFailed': "Couldn't load more creations."
'marketplace.creatorProfile.onTheWeb': 'On the web'
'marketplace.creatorProfile.organization': 'Organization'
'marketplace.creatorProfile.searchPlaceholder': 'Search plugins and templates'
'marketplace.creatorProfile.sort.asc': 'Sort ascending'
'marketplace.creatorProfile.sort.createdAt': 'Recently created'
'marketplace.creatorProfile.sort.desc': 'Sort descending'
'marketplace.creatorProfile.sort.popularity': 'Popularity'
'marketplace.creatorProfile.sort.updatedAt': 'Recently updated'
'marketplace.creatorProfile.sortBy': 'Sort by'
'marketplace.creatorProfile.title': 'Creator Profile'
'marketplace.creatorProfile.type.plugin': 'Plugin'
'marketplace.creatorProfile.type.template': 'Template'
'marketplace.difyMarketplace': 'Dify Marketplace'
'marketplace.discover': 'Discover'
'marketplace.empower': 'Empower your AI development'
'marketplace.home.creatorCenter': 'Creator Center'
'marketplace.home.guide': 'Guide'
'marketplace.home.heroSubtitle': 'Build with safer, more reliable plugins from the Dify Marketplace.'
'marketplace.home.heroTitle': 'Discover. Extend. Build'
'marketplace.home.plugins': 'Plugins'
'marketplace.home.searchPlaceholder': 'Search plugins or templates'
'marketplace.home.templates': 'Templates'
'marketplace.home.trendingByCreator': 'by {{creator}}'
'marketplace.home.trendingDescription': 'Top picks by real usage, refreshed every two weeks. Ranked by actual runs across workspaces — no paid placement, no editorial picks.'
'marketplace.home.trendingPaginationLabel': 'Trending pages'
'marketplace.home.trendingPause': 'Pause'
'marketplace.home.trendingPlay': 'Play'
'marketplace.home.trendingReadMore': 'Read more'
'marketplace.home.trendingReadMoreAbout': 'Read more about {{title}}'
'marketplace.home.trendingTitle': 'The plugins everyone is installing'
'marketplace.home.trendingView': 'View'
'marketplace.languages': 'Filter by Languages'
'marketplace.loadError': 'Failed to load. Please try again.'
'marketplace.moreFrom': 'More from Marketplace'
'marketplace.noPluginFound': 'No integration found'
'marketplace.partnerTip': 'Verified by a Dify partner'
'marketplace.pluginsHeroSubtitle': 'Use community-built integrations to power your AI development.'
'marketplace.pluginsHeroTitle': 'Discover. Extend. Build.'
'marketplace.pluginsResult': '{{num}} results'
'marketplace.searchFilterLanguage': 'Search language'
'marketplace.sortBy': 'Sort by'
'marketplace.sortOption.firstReleased': 'First Released'
'marketplace.sortOption.mostPopular': 'Most Popular'
'marketplace.sortOption.newlyReleased': 'Newly Released'
'marketplace.sortOption.recentlyUpdated': 'Recently Updated'
'marketplace.verifiedTip': 'Verified by Dify'
'marketplace.viewMore': 'View more'
pluginDevelopmentGuide: 'Integration development guide'
'pluginInfoModal.packageName': 'Package'
'pluginInfoModal.release': 'Release'
'pluginInfoModal.repository': 'Repository'
'pluginInfoModal.title': 'Integration info'
pluginPublishGuide: 'Integration publishing guide'
'privilege.admins': 'Admins'
'privilege.everyone': 'Everyone'
'privilege.noInstallPermissionTooltip': "You don't have permission to install and manage integrations"
'privilege.noone': 'No one'
'privilege.permissions': 'Permissions'
'privilege.quickWhoCanDebug': 'Who can debug?'
'privilege.quickWhoCanInstall': 'Who can install and manage?'
'readmeInfo.failedToFetch': 'Failed to fetch README'
'readmeInfo.needHelpCheckReadme': 'Need help? Check the README.'
'readmeInfo.noReadmeAvailable': 'No README available'
'readmeInfo.title': 'README'
requestAPlugin: 'Request an integration'
search: 'Search'
searchCategories: 'Search Categories'
searchInMarketplace: 'Search in Marketplace'
searchPlugins: 'Search integrations'
searchTools: 'Search integrations...'
'source.github': 'GitHub'
'source.local': 'Local Package File'
'source.marketplace': 'Marketplace'
'task.clearAll': 'Clear all'
'task.errorMsg.github': "This integration couldn't be installed automatically.\nPlease install it from GitHub."
'task.errorMsg.marketplace': "This integration couldn't be installed automatically.\nPlease install it from the Marketplace."
'task.errorMsg.unknown': "This integration couldn't be installed.\nThe integration source couldn't be identified."
'task.errorPlugins': 'Failed to Install Integrations'
'task.installFromGithub': 'Install from GitHub'
'task.installFromMarketplace': 'Install from Marketplace'
'task.installSuccess': '{{successLength}} integrations installed successfully'
'task.installed': 'Installed'
'task.installedError': '{{errorLength}} integrations failed to install'
'task.installing': 'Installing integrations'
'task.installingHint': 'Installing... This may take a few minutes.'
'task.installingWithError': 'Installing {{installingLength}} integrations, {{successLength}} success, {{errorLength}} failed'
'task.installingWithSuccess': 'Installing {{installingLength}} integrations, {{successLength}} success.'
'task.runningPlugins': 'Installing Integrations'
'task.successPlugins': 'Successfully Installed Integrations'
templatePublishingGuide: 'Template publishing guide'
'upgrade.description': 'About to install the following integration'
'upgrade.title': 'Install Integration'
'upgrade.upgrade': 'Install'
'upgrade.upgrading': 'Installing...'
}
pluginTags: {
allTags: 'All Tags'
clearSelectedTags: 'Clear selected tags: {{tags}}'
searchTags: 'Search Tags'
'tags.agent': 'Agent'
'tags.business': 'Business'
'tags.design': 'Design'
'tags.education': 'Education'
'tags.entertainment': 'Entertainment'
'tags.finance': 'Finance'
'tags.image': 'Image'
'tags.medical': 'Medical'
'tags.news': 'News'
'tags.other': 'Other'
'tags.productivity': 'Productivity'
'tags.rag': 'RAG'
'tags.search': 'Search'
'tags.social': 'Social'
'tags.travel': 'Travel'
'tags.utilities': 'Utilities'
'tags.videos': 'Videos'
'tags.weather': 'Weather'
}
pluginTrigger: {
'events.actionNum': '{{num}} {{event}} INCLUDED'
'events.event': 'Event'
'events.events': 'Events'
'events.item.noParameters': 'No parameters'
'events.output': 'Output'
'modal.apiKey.title': 'Create with API Key'
'modal.apiKey.verify.error': 'Credential verification failed. Please check your API key.'
'modal.apiKey.verify.success': 'Credentials verified successfully'
'modal.common.authorizing': 'Authorizing...'
'modal.common.back': 'Back'
'modal.common.create': 'Create'
'modal.common.creating': 'Creating...'
'modal.common.verify': 'Verify'
'modal.common.verifying': 'Verifying...'
'modal.errors.createFailed': 'Failed to create subscription'
'modal.errors.updateFailed': 'Failed to update subscription'
'modal.form.callbackUrl.label': 'Callback URL'
'modal.form.callbackUrl.placeholder': 'Generating...'
'modal.form.callbackUrl.privateAddressWarning': 'This URL appears to be an internal address, which may cause webhook requests to fail. You may change TRIGGER_URL to a public address.'
'modal.form.callbackUrl.tooltip': 'Provide a publicly accessible endpoint that can receive callback requests from the trigger provider.'
'modal.form.subscriptionName.label': 'Subscription Name'
'modal.form.subscriptionName.placeholder': 'Enter subscription name'
'modal.manual.logs.loading': 'Awaiting request from {{pluginName}}...'
'modal.manual.logs.request': 'Request'
'modal.manual.logs.title': 'Request Logs'
'modal.manual.title': 'Manual Setup'
'modal.oauth.authorization.authFailed': 'Failed to get OAuth authorization information'
'modal.oauth.authorization.authSuccess': 'Authorization successful'
'modal.oauth.authorization.waitingJump': 'Authorized, waiting for jump'
'modal.oauth.remove.failed': 'OAuth remove failed'
'modal.oauth.remove.success': 'OAuth remove successful'
'modal.oauth.save.success': 'OAuth configuration saved successfully'
'modal.oauth.title': 'Create with OAuth'
'modal.oauthRedirectInfo': 'As no system client secrets found for this tool provider, setup it manually is required, for redirect_uri, please use'
'modal.steps.configuration': 'Configuration'
'modal.steps.verify': 'Verify'
'node.status.warning': 'Disconnect'
'subscription.addType.options.apikey.description': 'Automatically create subscription using API credentials'
'subscription.addType.options.apikey.title': 'Create with API Key'
'subscription.addType.options.manual.description': 'Paste URL to create a new subscription'
'subscription.addType.options.manual.tip': 'Configure URL on third-party platform manually'
'subscription.addType.options.oauth.clientSettings': 'OAuth Client Settings'
'subscription.addType.options.oauth.clientTitle': 'OAuth Client'
'subscription.addType.options.oauth.custom': 'Custom'
'subscription.addType.options.oauth.default': 'Default'
'subscription.addType.options.oauth.description': 'Authorize with third-party platform to create subscription'
'subscription.addType.options.oauth.title': 'Create with OAuth'
'subscription.createButton.apiKey': 'New subscription with API Key'
'subscription.createButton.manual': 'Paste URL to create a new subscription'
'subscription.createButton.oauth': 'New subscription with OAuth'
'subscription.createFailed': 'Failed to create subscription'
'subscription.empty.button': 'New subscription'
'subscription.list.item.actions.deleteConfirm.confirm': 'Confirm Delete'
'subscription.list.item.actions.deleteConfirm.confirmInputPlaceholder': 'Enter "{{name}}" to confirm.'
'subscription.list.item.actions.deleteConfirm.confirmInputTip': 'Please enter “{{name}}” to confirm.'
'subscription.list.item.actions.deleteConfirm.confirmInputWarning': 'Please enter the correct name to confirm.'
'subscription.list.item.actions.deleteConfirm.content': 'Once deleted, this subscription cannot be recovered. Please confirm.'
'subscription.list.item.actions.deleteConfirm.contentWithApps': 'The current subscription is referenced by {{count}} applications. Deleting it will cause the configured applications to stop receiving subscription events.'
'subscription.list.item.actions.deleteConfirm.error': 'Failed to delete subscription {{name}}'
'subscription.list.item.actions.deleteConfirm.title': 'Delete {{name}}?'
'subscription.list.item.actions.edit.error': 'Failed to update subscription'
'subscription.list.item.actions.edit.title': 'Edit Subscription'
'subscription.list.item.noUsed': 'No workflow used'
'subscription.list.item.usedByNum': 'Used by {{num}} workflows'
'subscription.list.tip': 'Receive events via Subscription'
'subscription.listNum': '{{num}} subscriptions'
'subscription.maxCount': 'Max {{num}} subscriptions'
'subscription.noSubscriptionSelected': 'No subscription selected'
'subscription.selectPlaceholder': 'Select subscription'
'subscription.subscriptionRemoved': 'Subscription removed'
}
register: {}
runLog: {
circularInvocationTip: 'There is circular invocation of tools/nodes in the current workflow.'
detail: 'DETAIL'
input: 'INPUT'
'meta.executor': 'Executor'
'meta.startTime': 'Start Time'
'meta.status': 'Status'
'meta.steps': 'Run Steps'
'meta.time': 'Elapsed Time'
'meta.title': 'METADATA'
'meta.tokens': 'Total Tokens'
result: 'RESULT'
'resultEmpty.link': 'detail panel'
'resultEmpty.tipLeft': 'please go to the '
'resultEmpty.tipRight': ' view it.'
'resultEmpty.title': 'This run only output JSON format,'
'resultPanel.status': 'STATUS'
'resultPanel.time': 'ELAPSED TIME'
'resultPanel.tokens': 'TOTAL TOKENS'
tracing: 'TRACING'
}
share: {
'appNotAccessible.description': 'Contact the app administrator if you need help.'
'appNotAccessible.documentTitle': 'App not accessible · Dify'
'appNotAccessible.ipAddress': 'Your IP address is <ip>{{ip}}</ip>.'
'appNotAccessible.title': 'This app doesn’t exist or isn’t accessible from your network.'
'chat.chatFormTip': 'Chat settings cannot be modified after the chat has started.'
'chat.chatSettingsTitle': 'New chat setup'
'chat.collapse': 'Collapse'
'chat.deleteConversation.content': 'Are you sure you want to delete this conversation?'
'chat.deleteConversation.title': 'Delete conversation'
'chat.expand': 'Expand'
'chat.newChat': 'Start New chat'
'chat.newChatDefaultName': 'New conversation'
'chat.newChatTip': 'Already in a new chat'
'chat.pinnedTitle': 'Pinned'
'chat.poweredBy': 'Powered by'
'chat.privacyPolicyMiddle': 'privacy policy'
'chat.resetChat': 'Reset conversation'
'chat.startChat': 'Start Chat'
'chat.unpinnedTitle': 'Recent'
'chat.viewChatSettings': 'View chat settings'
'common.appUnavailable': 'App is unavailable'
'common.appUnknownError': 'App is unavailable'
'generation.batchFailed.info': '{{num}} failed executions'
'generation.batchFailed.outputPlaceholder': 'No output content'
'generation.batchFailed.retry': 'Retry'
'generation.browse': 'browse'
'generation.completionResult': 'Completion result'
'generation.csvStructureTitle': 'The CSV file must conform to the following structure:'
'generation.csvUploadTitle': 'Drag and drop your CSV file here, or '
'generation.downloadTemplate': 'Download the template here'
'generation.errorMsg.atLeastOne': 'Please input at least one row in the uploaded file.'
'generation.errorMsg.empty': 'Please input content in the uploaded file.'
'generation.errorMsg.emptyLine': 'Row {{rowIndex}} is empty'
'generation.errorMsg.fileStructNotMatch': 'The uploaded CSV file not match the struct.'
'generation.errorMsg.invalidLine': 'Row {{rowIndex}}: {{varName}} value can not be empty'
'generation.errorMsg.moreThanMaxLengthLine': 'Row {{rowIndex}}: {{varName}} value can not be more than {{maxLength}} characters'
'generation.execution': 'Run'
'generation.executions': '{{num}} runs'
'generation.field': 'Field'
'generation.noData': 'AI will give you what you want here.'
'generation.run': 'Execute'
'generation.savedNoData.description': 'Start generating content, and find your saved results here.'
'generation.savedNoData.startCreateContent': 'Start create content'
'generation.savedNoData.title': "You haven't saved a result yet!"
'generation.stopRun': 'Stop Run'
'generation.tabs.batch': 'Run Batch'
'generation.tabs.create': 'Run Once'
'generation.tabs.saved': 'Saved'
'generation.title': 'AI Completion'
'humanInput.completed': 'Seems like this request was dealt with elsewhere.'
'humanInput.currentAccount': 'Current account: {{name}}'
'humanInput.expirationTimeNowOrFuture': 'This action will expire {{relativeTime}}.'
'humanInput.expired': 'Seems like this request has expired.'
'humanInput.expiredTip': 'This action has expired.'
'humanInput.formNotFound': 'Form not found.'
'humanInput.rateLimitExceeded': 'Too many requests, please try again later.'
'humanInput.recorded': 'Your input has been recorded.'
'humanInput.sorry': 'Sorry!'
'humanInput.submissionID': 'submission_id: {{id}}'
'humanInput.switchAccount': 'Switch account'
'humanInput.thanks': 'Thanks!'
'humanInput.unavailableDescription': "The link may be unavailable or may not match the account you're signed in with. Open the form from the notification you received, or try switching accounts."
'humanInput.unavailableTitle': 'Unable to open this form'
'humanInputV2.accessRateLimited': 'Too many verification emails were requested. Please try again later.'
'humanInputV2.alreadySubmitted': 'This request has already been completed.'
'humanInputV2.challengeExpired': 'This verification code has expired. Request a new code to continue.'
'humanInputV2.challengeStale': 'This verification code was replaced. Request a new code to continue.'
'humanInputV2.codeExpiresIn': 'Code expires in {{seconds}}s'
'humanInputV2.codeRequired': 'Request a verification code to continue.'
'humanInputV2.codeSent': 'A verification code was sent to your email.'
'humanInputV2.deliveryFailed': 'The verification email could not be sent. Please try again.'
'humanInputV2.formExpired': 'This request has expired.'
'humanInputV2.formNotFound': 'Form not found.'
'humanInputV2.formRateLimited': 'Too many form requests. Please try again later.'
'humanInputV2.invalidOtp': 'The verification code is incorrect. Check the code and try again.'
'humanInputV2.networkError': 'The request could not be completed. Check your connection and try again.'
'humanInputV2.otpLabel': 'Email verification code'
'humanInputV2.otpPlaceholder': 'Enter the 6-digit code'
'humanInputV2.requestingCode': 'Sending a verification code…'
'humanInputV2.resendCode': 'Resend code'
'humanInputV2.retry': 'Try again'
'humanInputV2.sendCode': 'Send a new code'
'humanInputV2.unavailable': 'This form is temporarily unavailable.'
'humanInputV2.unknownError': 'Something went wrong. Please try again.'
'humanInputV2.uploadFailed': 'The file could not be uploaded. Please try again.'
'login.backToHome': 'Back to Home'
}
skill: {
'skillManagement.create': 'Create'
'skillManagement.createFailed': 'Failed to create skill.'
'skillManagement.dateTimeFormat': 'MMM D, YYYY HH:mm'
'skillManagement.deleteDialog.confirmInputLabel': 'To confirm, type <skillName>{{skillName}}</skillName> in the box below:'
'skillManagement.deleteDialog.confirmInputPlaceholder': 'Enter the skill display name'
'skillManagement.deleteDialog.description': 'Deleting the skill is irreversible. Its content and full version history will be permanently deleted. No agents are currently using it.'
'skillManagement.deleteDialog.referencedDescription':
| '{{count}} agent is using this skill, either independently or in a workflow. Deleting this skill will permanently erase its contents and version history, and remove it from the affected agent.'
| '{{count}} agents are using this skill, either independently or in workflows. Deleting this skill will permanently erase its contents and version history, and remove it from all affected agents.'
'skillManagement.deleteDialog.title': 'Delete {{name}}?'
'skillManagement.deleteFailed': 'Failed to delete skill.'
'skillManagement.deleteSuccess': 'Skill deleted.'
'skillManagement.detail.addMetadata': 'Add metadata'
'skillManagement.detail.addTag': 'Add tag'
'skillManagement.detail.addTagSuccess': 'Tag added.'
'skillManagement.detail.back': 'Back to Skills'
'skillManagement.detail.builder.attach': 'Attach file'
'skillManagement.detail.builder.attachFailed': 'Failed to attach file.'
'skillManagement.detail.builder.attachLimit': 'You can attach up to 10 files.'
'skillManagement.detail.builder.attachTooLarge': 'Files must be 15 MB or smaller. Images must be 10 MB or smaller.'
'skillManagement.detail.builder.attachUnsupported': 'Only images, text, and document files can be attached.'
'skillManagement.detail.builder.attachmentOnlyMessage': 'Use the attached file to help improve this skill.'
'skillManagement.detail.builder.close': 'Close Skill Builder'
'skillManagement.detail.builder.copyResponse': 'Copy response'
'skillManagement.detail.builder.copySuccess': 'Response copied to clipboard.'
'skillManagement.detail.builder.editIntro': "I've reviewed this skill. What would you like to adjust?"
'skillManagement.detail.builder.exampleIssueTriage': 'Customer issue triage'
'skillManagement.detail.builder.exampleOnboarding': 'New hire onboarding guide'
'skillManagement.detail.builder.exampleSalesFollowUp': 'Sales lead follow-up strategy'
'skillManagement.detail.builder.modifyPlaceholder': 'Ask AI to modify this skill...'
'skillManagement.detail.builder.open': 'Open Skill Builder'
'skillManagement.detail.builder.placeholder': 'Describe the scenario...'
'skillManagement.detail.builder.progress.applyingChanges': 'Applying file changes'
'skillManagement.detail.builder.progress.generatingPlan': 'Generating the update plan'
'skillManagement.detail.builder.progress.readingDraft': 'Reading the current draft'
'skillManagement.detail.builder.progress.updatingEditor': 'Updating the editor'
'skillManagement.detail.builder.promptDescription': 'Describe it and a draft appears in the editor, with steps and files included.'
'skillManagement.detail.builder.promptTitle': 'What should this skill handle?'
'skillManagement.detail.builder.readAloud': 'Read response aloud'
'skillManagement.detail.builder.removeAttachment': 'Remove {{name}}'
'skillManagement.detail.builder.restart': 'Restart builder'
'skillManagement.detail.builder.retryResponse': 'Retry response'
'skillManagement.detail.builder.send': 'Send message'
'skillManagement.detail.builder.sendFailed': 'Skill Builder failed to respond.'
'skillManagement.detail.builder.thinking': 'Thinking'
'skillManagement.detail.builder.thinkingUnavailable': 'No thinking content was returned by the model.'
'skillManagement.detail.builder.title': 'Skill Builder'
'skillManagement.detail.builder.tryExample': 'Try an example'
'skillManagement.detail.cancelAddMetadata': 'Cancel adding metadata'
'skillManagement.detail.closeFileTab': 'Close {{name}}'
'skillManagement.detail.closeVersions': 'Close versions'
'skillManagement.detail.collapseSidebar': 'Collapse sidebar'
'skillManagement.detail.copyContentSuccess': 'Content copied to clipboard.'
'skillManagement.detail.copyFile': 'Copy'
'skillManagement.detail.copyFileSuccess': 'File ready to paste.'
'skillManagement.detail.createFile': 'New file'
'skillManagement.detail.createFileMenu': 'New file...'
'skillManagement.detail.createFileSuccess': 'File created.'
'skillManagement.detail.createFolder': 'New folder'
'skillManagement.detail.createFolderMenu': 'New folder...'
'skillManagement.detail.createFolderSuccess': 'Folder created.'
'skillManagement.detail.createdBy': 'Created by {{name}}'
'skillManagement.detail.currentDraft': 'Current draft'
'skillManagement.detail.cutFile': 'Cut'
'skillManagement.detail.cutFileSuccess': 'File ready to move.'
'skillManagement.detail.deleteFileConfirm': 'Delete this file?'
'skillManagement.detail.deleteFileSuccess': 'File deleted.'
'skillManagement.detail.deleteVersionConfirm': 'Delete this version?'
'skillManagement.detail.downloadFile': 'Download file'
'skillManagement.detail.draft': 'Draft'
'skillManagement.detail.editVersionInfo': 'Edit version info'
'skillManagement.detail.exitVersions': 'Exit versions'
'skillManagement.detail.expandSidebar': 'Expand sidebar'
'skillManagement.detail.fileAlreadyExists': 'A file or folder with this name already exists.'
'skillManagement.detail.fileCount': '{{count}} file' | '{{count}} files'
'skillManagement.detail.fileMeta': '{{type}} · {{size}} bytes'
'skillManagement.detail.fileMissing': 'File not found.'
'skillManagement.detail.fileOperationFailed': 'File operation failed.'
'skillManagement.detail.latest': 'Latest'
'skillManagement.detail.loadFailed': 'Failed to load skill.'
'skillManagement.detail.markdownLiveMode': 'Live preview'
'skillManagement.detail.markdownSourceMode': 'Source editor'
'skillManagement.detail.metadataKey': 'name'
'skillManagement.detail.metadataValue': 'value'
'skillManagement.detail.moveFileSuccess': 'File moved.'
'skillManagement.detail.moveFilesSuccess': 'Files moved.'
'skillManagement.detail.nameThisVersion': 'Name this version'
'skillManagement.detail.noFileSelected': 'Select a file to preview.'
'skillManagement.detail.noFiles': 'No files.'
'skillManagement.detail.noVersions': 'No published versions yet.'
'skillManagement.detail.pasteFileSuccess': 'File pasted.'
'skillManagement.detail.previewUnsupported': 'Preview is not supported for this file.'
'skillManagement.detail.publish': 'Publish'
'skillManagement.detail.publishFailed': 'Failed to publish skill.'
'skillManagement.detail.publishReferencesDescription':
| 'Publishing takes effect immediately for the {{count}} agent using this skill.'
| 'Publishing takes effect immediately for the {{count}} agents using this skill.'
'skillManagement.detail.publishReferencesTitle': 'Publish skill'
'skillManagement.detail.publishSuccess': 'Skill published.'
'skillManagement.detail.publishUpdate': 'Publish update'
'skillManagement.detail.published': 'Published'
'skillManagement.detail.publishedAt': 'Published {{time}}'
'skillManagement.detail.publishing': 'Publishing...'
'skillManagement.detail.referenceFiles.confirm': 'Enter Confirm'
'skillManagement.detail.referenceFiles.empty': 'No files available.'
'skillManagement.detail.referenceFiles.livePlaceholder': 'Write instructions for the agent. Type / to reference files.'
'skillManagement.detail.referenceFiles.navigate': '↑↓ Navigate'
'skillManagement.detail.referenceFiles.title': 'Reference files'
'skillManagement.detail.referencedBy': 'Used by {{count}} agent' | 'Used by {{count}} agents'
'skillManagement.detail.removeTag': 'Remove {{tag}}'
'skillManagement.detail.removeTagSuccess': 'Tag removed.'
'skillManagement.detail.renameFileSuccess': 'File renamed.'
'skillManagement.detail.renameVersionFailed': 'Failed to rename version.'
'skillManagement.detail.renameVersionPrompt': 'Version name'
'skillManagement.detail.resizeSidebar': 'Resize file sidebar'
'skillManagement.detail.restoreVersion': 'Restore'
'skillManagement.detail.restoreVersionConfirmDescription': 'This will replace the current draft with the files from "{{version}}". It will not publish the Skill or create a new version.'
'skillManagement.detail.restoreVersionConfirmTitle': 'Restore this version?'
'skillManagement.detail.saveConflictConfirmDescription': 'This skill was updated elsewhere. Load the latest draft to continue editing. Your current changes will be discarded.'
'skillManagement.detail.saveConflictConfirmTitle': 'Load the latest draft?'
'skillManagement.detail.saveConflictReload': 'Load latest draft'
'skillManagement.detail.saveConflictStatus': 'Conflict detected. Load the latest draft to continue editing.'
'skillManagement.detail.saveFailed': 'Failed to save file.'
'skillManagement.detail.saved': 'Saved'
'skillManagement.detail.savedAt': 'Saved {{time}}'
'skillManagement.detail.saving': 'Saving...'
'skillManagement.detail.showMoreReferences': 'Show {{count}} more'
'skillManagement.detail.skillDescriptionPlaceholder': 'Describe what this skill does and when agents should use it.'
'skillManagement.detail.skillNamePlaceholder': 'Use lowercase letters, numbers, and hyphens.'
'skillManagement.detail.unpublishedChanges': 'Unpublished changes'
'skillManagement.detail.unsavedChanges': 'Unsaved changes'
'skillManagement.detail.upToDate': 'Up to date'
'skillManagement.detail.updateTagsFailed': 'Failed to update tags.'
'skillManagement.detail.uploadCheckFailed': "Couldn't check these files. Try again."
'skillManagement.detail.uploadConflict': 'A file with this name already exists.'
'skillManagement.detail.uploadFailureSummary': '{{failed}} of {{total}} files failed'
'skillManagement.detail.uploadFailureTitle': 'Some uploads failed'
'skillManagement.detail.uploadFileSuccess': 'File uploaded.'
'skillManagement.detail.uploadFilesButton': 'Upload {{count}} files'
'skillManagement.detail.uploadFilesFailedStatus':
| '{{count}} file upload failed.'
| '{{count}} file uploads failed.'
'skillManagement.detail.uploadFilesMenu': 'Upload files...'
'skillManagement.detail.uploadFilesProgress': 'Uploading {{completed}}/{{total}}'
'skillManagement.detail.uploadInvalidExtension': "This file type isn't supported."
'skillManagement.detail.uploadInvalidName': 'Invalid name.'
'skillManagement.detail.uploadInvalidPath': 'Invalid file path.'
'skillManagement.detail.uploadKeepBoth': 'Keep both'
'skillManagement.detail.uploadLateConflict': 'Someone added this file while you were uploading.'
'skillManagement.detail.uploadMissingExtension': 'A file extension is required.'
'skillManagement.detail.uploadNetworkFailure': 'Upload failed. Check your connection.'
'skillManagement.detail.uploadReadySummary': '{{ready}} ready · {{decisions}} need a decision · {{skipped}} will be skipped'
'skillManagement.detail.uploadReplace': 'Replace'
'skillManagement.detail.uploadResolvedSummary': '{{ready}} ready · {{skipped}} will be skipped'
'skillManagement.detail.uploadRetryCount': 'Retry {{count}}'
'skillManagement.detail.uploadReviewTitle': 'Review before uploading'
'skillManagement.detail.uploadSkip': 'Skip'
'skillManagement.detail.uploadSkippedGroup': "{{count}} files can't be uploaded and will be skipped"
'skillManagement.detail.uploadStatusDismiss': 'Dismiss upload status'
'skillManagement.detail.uploadSuggestion': 'Use suggestion'
'skillManagement.detail.uploadWillReplace': 'Will replace the existing file'
'skillManagement.detail.uploadWillUseName': 'Will upload as {{name}}'
'skillManagement.detail.versionHistory': 'Open version history'
'skillManagement.detail.versionPublishNote': 'Release notes'
'skillManagement.detail.versionPublishNotePlaceholder': 'Describe this change'
'skillManagement.detail.versionPublishedMeta': '{{time}} · {{name}}'
'skillManagement.detail.versionTitle': 'Title'
'skillManagement.detail.versions': 'Versions'
'skillManagement.detail.viewOnly': 'View only'
'skillManagement.detail.viewUploadErrors': 'View errors'
'skillManagement.draft': 'Draft'
'skillManagement.duplicateFailed': 'Failed to duplicate skill.'
'skillManagement.editedAt': 'Edited {{time}}'
'skillManagement.empty': 'No skills yet'
'skillManagement.emptyAction.createDescription': 'Describe a scenario in plain words and get a draft skill to review.'
'skillManagement.emptyAction.createTitle': 'Create with Skill Builder'
'skillManagement.emptyAction.importDescription': 'Bring a .zip with SKILL.md, in the agentskills.io format.'
'skillManagement.emptyAction.importTitle': 'Import a skill package'
'skillManagement.emptySearch': 'No skills found'
'skillManagement.errors.missingSkillMd': 'This package has no SKILL.md. Add the file and import it again.'
'skillManagement.errors.nameConflict': 'A skill named "{{name}}" already exists. Rename it in SKILL.md and import again.'
'skillManagement.errors.workspaceLimit': 'Your workspace has reached the limit of 500 skills. Delete a skill to add a new one.'
'skillManagement.import': 'Import'
'skillManagement.importDialog.browse': 'Browse'
'skillManagement.importDialog.description': 'Supports .zip and .skill packages that contain SKILL.md.'
'skillManagement.importDialog.dropzone': 'Drag and drop file, or <browse>Browse</browse>'
'skillManagement.importDialog.invalidFile': 'Choose one .zip or .skill package.'
'skillManagement.importDialog.title': 'Import skill'
'skillManagement.importFailed': 'Failed to import skill.'
'skillManagement.listLabel': 'Workspace skills'
'skillManagement.loadingError': 'Failed to load skills'
'skillManagement.moreActions': 'More actions for {{name}}'
'skillManagement.noDescription': 'No description yet'
'skillManagement.publishedAt': 'Published {{time}}'
'skillManagement.referenceCount': '{{count}} agent' | '{{count}} agents'
'skillManagement.searchLabel': 'Search skills'
'skillManagement.searchPlaceholder': 'Search by name or description'
'skillManagement.title': 'Skills'
}
snippet: {
create: 'CREATE SNIPPET'
createFailed: 'Failed to create snippet'
createFrom: 'CREATE FROM'
createFromBlank: 'Create from blank'
currentDSLVersion: 'System-supported DSL version: '
deleteConfirmContent: "This can't be undone. Workflows that use this snippet won't be affected."
deleteConfirmTitle: 'Delete Snippet?'
deleteFailed: 'Failed to delete snippet'
deleted: 'Snippet deleted'
draft: 'Draft'
dslVersionMismatchDescription: 'A significant difference in DSL versions has been detected. Forcing the import may cause the snippet to malfunction.'
dslVersionMismatchQuestion: 'Do you want to continue?'
dslVersionMismatchTitle: 'Version Incompatibility'
editDialogTitle: 'Edit Snippet Info'
editFailed: 'Failed to update snippet info'
emptyGraphSaveError: 'Add at least one node before publishing.'
exportFailed: 'Export snippet failed.'
importDSLFile: 'Import DSL file'
importDialogTitle: 'Import Snippet'
importFromDSLFile: 'From DSL file'
importFromDSLUrl: 'From URL'
importFromDSLUrlPlaceholder: 'Paste DSL link here'
importedDSLVersion: 'Current snippet DSL version: '
inputVariables: 'Input Variables'
'menu.deleteSnippet': 'Delete'
'menu.editInfo': 'Edit Info'
'menu.exportSnippet': 'Export Snippet'
panelTitle: 'Input Field'
publishButton: 'Publish'
publishFailed: 'Failed to publish snippet'
publishSuccess: 'Snippet published'
sectionOrchestrate: 'Orchestrate'
testRunButton: 'Test run'
typeLabel: 'Snippet'
unknownUser: 'User'
}
time: {
'dateFormats.compact': 'MM/DD/YYYY HH:mm'
'dateFormats.withSeconds': 'MM/DD/YYYY hh:mm:ss A'
'operation.cancel': 'Cancel'
'operation.close': 'Close'
'operation.now': 'Now'
'operation.ok': 'OK'
'operation.pickDate': 'Pick Date'
'picker.chooseMonthAndYear': 'Choose month and year'
'picker.endDate': 'End date'
'picker.hour': 'Hour'
'picker.minute': 'Minute'
'picker.month': 'Month'
'picker.nextMonth': 'Next month'
'picker.period': 'AM/PM'
'picker.previousMonth': 'Previous month'
'picker.required': 'Choose a value.'
'picker.requiredLabel': 'Required'
'picker.startDate': 'Start date'
'picker.unavailable': 'This date or time is unavailable.'
'picker.year': 'Year'
'title.pickTime': 'Pick Time'
}
tools: {
addSwaggerAPIAsTool: 'Add Swagger API as Tool'
'addToolModal.added': 'added'
'addToolModal.agent.tip': ''
'addToolModal.agent.title': 'No agent strategy available'
'addToolModal.all.tip': ''
'addToolModal.all.title': 'No tools available'
'addToolModal.built-in.tip': ''
'addToolModal.built-in.title': 'No built-in tool available'
'addToolModal.custom.tip': 'Create a custom tool'
'addToolModal.custom.title': 'No custom tool available'
'addToolModal.mcp.tip': 'Add an MCP server'
'addToolModal.mcp.title': 'No MCP tool available'
'addToolModal.workflow.tip': 'Publish workflows as tools in Studio'
'addToolModal.workflow.title': 'No workflow tool available'
allMCP: 'All MCP'
allSwaggerAPIAsTool: 'All swagger API as tool'
allToolPlugins: 'All tool plugins'
allTools: 'All tools'
allWorkflowAsTool: 'All workflow as tool'
'auth.authorized': 'Authorized'
'auth.setup': 'Set up authorization to use'
'auth.setupModalTitle': 'Set Up Authorization'
'auth.setupModalTitleDescription': 'After configuring credentials, all members within the workspace can use this tool when orchestrating applications.'
'auth.unauthorized': 'Unauthorized'
author: 'by'
builtInPromptTitle: 'Prompt'
copyToolName: 'Copy Name'
createSwaggerAPIAsTool: 'Create a Swagger API as Tool'
'createTool.authHeaderPrefix.title': 'Auth Type'
'createTool.authHeaderPrefix.types.basic': 'Basic'
'createTool.authHeaderPrefix.types.bearer': 'Bearer'
'createTool.authHeaderPrefix.types.custom': 'Custom'
'createTool.authMethod.key': 'Key'
'createTool.authMethod.keyTooltip': 'Http Header Key, You can leave it with "Authorization" if you have no idea what it is or set it to a custom value'
'createTool.authMethod.queryParam': 'Query Parameter'
'createTool.authMethod.queryParamTooltip': 'The name of the API key query parameter to pass, e.g. "key" in "https://example.com/test?key=API_KEY".'
'createTool.authMethod.title': 'Authorization method'
'createTool.authMethod.type': 'Authorization type'
'createTool.authMethod.types.apiKeyPlaceholder': 'HTTP header name for API Key'
'createTool.authMethod.types.apiValuePlaceholder': 'Enter API Key'
'createTool.authMethod.types.api_key': 'API Key'
'createTool.authMethod.types.api_key_header': 'Header'
'createTool.authMethod.types.api_key_query': 'Query Param'
'createTool.authMethod.types.none': 'None'
'createTool.authMethod.types.queryParamPlaceholder': 'Query parameter name for API Key'
'createTool.authMethod.value': 'Value'
'createTool.availableTools.action': 'Actions'
'createTool.availableTools.description': 'Description'
'createTool.availableTools.method': 'Method'
'createTool.availableTools.name': 'Name'
'createTool.availableTools.path': 'Path'
'createTool.availableTools.test': 'Test'
'createTool.availableTools.title': 'Available Tools'
'createTool.changeIcon': 'Change tool icon'
'createTool.confirmTip': 'Apps using this tool will be affected'
'createTool.confirmTitle': 'Confirm to save ?'
'createTool.customDisclaimer': 'Custom disclaimer'
'createTool.customDisclaimerPlaceholder': 'Please enter custom disclaimer'
'createTool.deleteToolConfirmContent': 'Deleting the Tool is irreversible. Users will no longer be able to access your Tool.'
'createTool.deleteToolConfirmTitle': 'Delete this Tool?'
'createTool.description': 'Description'
'createTool.descriptionPlaceholder': "Brief description of the tool's purpose, e.g., get the temperature for a specific location."
'createTool.editAction': 'Configure'
'createTool.editTitle': 'Edit Custom Tool'
'createTool.exampleOptions.blankTemplate': 'Blank Template'
'createTool.exampleOptions.json': 'Weather(JSON)'
'createTool.exampleOptions.yaml': 'Pet Store(YAML)'
'createTool.examples': 'Examples'
'createTool.importFromUrl': 'Import from URL'
'createTool.importFromUrlPlaceHolder': 'https://...'
'createTool.name': 'Name'
'createTool.nameForToolCall': 'Tool call name'
'createTool.nameForToolCallPlaceHolder': 'Used for machine recognition, such as getCurrentWeather, list_pets'
'createTool.nameForToolCallTip': 'Only supports numbers, letters, and underscores.'
'createTool.privacyPolicy': 'Privacy policy'
'createTool.privacyPolicyPlaceholder': 'Please enter privacy policy'
'createTool.schema': 'Schema'
'createTool.schemaPlaceHolder': 'Enter your OpenAPI schema here'
'createTool.title': 'Create Custom Tool'
'createTool.toolInput.description': 'Description'
'createTool.toolInput.descriptionPlaceholder': "Description of the parameter's meaning"
'createTool.toolInput.label': 'Tags'
'createTool.toolInput.labelPlaceholder': 'Choose tags(optional)'
'createTool.toolInput.method': 'Method'
'createTool.toolInput.methodParameter': 'Parameter'
'createTool.toolInput.methodParameterTip': 'LLM fills during inference'
'createTool.toolInput.methodSetting': 'Setting'
'createTool.toolInput.methodSettingTip': 'User fills in the tool configuration'
'createTool.toolInput.name': 'Name'
'createTool.toolInput.required': 'Required'
'createTool.toolInput.title': 'Tool Input'
'createTool.toolNamePlaceHolder': 'Enter the tool name'
'createTool.toolOutput.description': 'Description'
'createTool.toolOutput.reserved': 'Reserved'
'createTool.toolOutput.reservedParameterDuplicateTip': 'text, json, and files are reserved variables. Variables with these names cannot appear in the output schema.'
'createTool.toolOutput.sourceNode': 'Source node'
'createTool.toolOutput.title': 'Tool Output'
'createTool.urlError': 'Please enter a valid URL'
'createTool.viewSchemaSpec': 'View the OpenAPI-Swagger Specification'
howToGet: 'How to get'
includeToolNum: '{{num}} {{action}} included'
'mcp.authorize': 'Authorize'
'mcp.authorizeTip': 'After authorization, tools will be displayed here.'
'mcp.authorizing': 'Authorizing...'
'mcp.authorizingRequired': 'Authorization is required'
'mcp.configured': 'Configured'
'mcp.create.cardLink': 'Learn more about MCP server integration'
'mcp.create.cardTitle': 'Add MCP Server (HTTP)'
'mcp.delete': 'Delete MCP Server'
'mcp.deleteConfirmTitle': 'Would you like to delete {{mcp}}?'
'mcp.getTools': 'Get tools'
'mcp.gettingTools': 'Getting Tools...'
'mcp.identifier': 'Server Identifier (Click to Copy)'
'mcp.modal.addHeader': 'Add Header'
'mcp.modal.authentication': 'Authentication'
'mcp.modal.cancel': 'Cancel'
'mcp.modal.changeIcon': 'Change server icon'
'mcp.modal.clientID': 'Client ID'
'mcp.modal.clientSecret': 'Client Secret'
'mcp.modal.clientSecretPlaceholder': 'Client Secret'
'mcp.modal.configurations': 'Configurations'
'mcp.modal.confirm': 'Add & Authorize'
'mcp.modal.editTitle': 'Edit MCP Server (HTTP)'
'mcp.modal.forwardUserIdentity': 'Forward user identity'
'mcp.modal.forwardUserIdentityTip': "Forward the calling user's verified SSO identity to this MCP server in the X-Dify-SSO-Token header. Requires Dify Enterprise SSO."
'mcp.modal.headerKey': 'Header Name'
'mcp.modal.headerKeyPlaceholder': 'e.g., Authorization'
'mcp.modal.headerValue': 'Header Value'
'mcp.modal.headerValuePlaceholder': 'e.g., Bearer token123'
'mcp.modal.headers': 'Headers'
'mcp.modal.headersTip': 'Additional HTTP headers to send with MCP server requests'
'mcp.modal.invalidServerIdentifier': 'Please enter a valid server identifier'
'mcp.modal.invalidServerUrl': 'Please enter a valid server URL'
'mcp.modal.maskedHeadersTip': 'Header values are masked for security. Changes will update the actual values.'
'mcp.modal.name': 'Name & Icon'
'mcp.modal.namePlaceholder': 'Name your MCP server'
'mcp.modal.noHeaders': 'No custom headers configured'
'mcp.modal.redirectUrlWarning': 'Please configure your OAuth redirect URL to:'
'mcp.modal.save': 'Save'
'mcp.modal.serverIdentifier': 'Server Identifier'
'mcp.modal.serverIdentifierPlaceholder': 'Unique identifier, e.g., my-mcp-server'
'mcp.modal.serverIdentifierTip': 'Unique identifier for the MCP server within the workspace. Lowercase letters, numbers, underscores, and hyphens only. Up to 24 characters.'
'mcp.modal.serverIdentifierWarning': "The server won't be recognized by existing apps after an ID change"
'mcp.modal.serverUrl': 'Server URL'
'mcp.modal.serverUrlPlaceholder': 'URL to server endpoint'
'mcp.modal.serverUrlWarning': 'Updating the server address may disrupt applications that depend on this server'
'mcp.modal.sseReadTimeout': 'SSE Read Timeout'
'mcp.modal.timeout': 'Timeout'
'mcp.modal.timeoutPlaceholder': '30'
'mcp.modal.title': 'Add MCP Server (HTTP)'
'mcp.modal.useDynamicClientRegistration': 'Use Dynamic Client Registration'
'mcp.noConfigured': 'Unconfigured Server'
'mcp.noTools': 'No tools available'
'mcp.onlyTool': '1 tool included'
'mcp.operation.edit': 'Edit'
'mcp.operation.remove': 'Delete'
'mcp.server.addDescription': 'Add description'
'mcp.server.edit': 'Edit description'
'mcp.server.modal.addTitle': 'Add description to enable MCP server'
'mcp.server.modal.confirm': 'Enable MCP Server'
'mcp.server.modal.description': 'Description'
'mcp.server.modal.descriptionPlaceholder': 'Explain what this tool does and how it should be used by the LLM'
'mcp.server.modal.editTitle': 'Edit description'
'mcp.server.modal.parameters': 'Parameters'
'mcp.server.modal.parametersPlaceholder': 'Parameter purpose and constraints'
'mcp.server.modal.parametersTip': 'Add descriptions for each parameter to help the LLM understand their purpose and constraints.'
'mcp.server.reGen': 'Do you want to regenerate the server URL? The current URL will stop working immediately.'
'mcp.server.title': 'MCP Server'
'mcp.server.url': 'Server URL'
'mcp.toolItem.noDescription': 'No description'
'mcp.toolItem.parameters': 'Parameters'
'mcp.toolUpdateConfirmContent': 'Updating the tool list may affect existing apps. Do you wish to proceed?'
'mcp.toolUpdateConfirmTitle': 'Update Tool List'
'mcp.toolsCount': '{{count}} tools'
'mcp.toolsEmpty': 'Tools not loaded'
'mcp.toolsNum': '{{count}} tools included'
'mcp.update': 'Update'
'mcp.updateTime': 'Updated'
'mcp.updateTools': 'Updating Tools...'
noTools: 'No tools found'
notAuthorized: 'Not authorized'
openInStudio: 'Open in Studio'
'setBuiltInTools.file': 'file'
'setBuiltInTools.infoAndSetting': 'Info & Settings'
'setBuiltInTools.number': 'number'
'setBuiltInTools.parameters': 'parameters'
'setBuiltInTools.required': 'Required'
'setBuiltInTools.setting': 'Setting'
'setBuiltInTools.string': 'string'
swaggerAPIAsToolTip: 'Learn more about Swagger API as Tool'
'test.parameters': 'Parameters'
'test.parametersValue': 'Parameters & Value'
'test.testResult': 'Test Results'
'test.testResultPlaceholder': 'Test result will show here'
'test.title': 'Test'
'test.value': 'Value'
'thought.requestTitle': 'Request'
'thought.responseTitle': 'Response'
'thought.used': 'Used'
'thought.using': 'Using'
toolNameUsageTip: 'Tool call name for agent reasoning and prompting'
toolRemoved: 'Tool removed'
'type.builtIn': 'Tools'
'type.custom': 'Custom'
'type.workflow': 'Workflow'
'workflowToolEmpty.description': "To use a workflow as a tool, publish it from Studio first — then it'll appear here and can be added to any app."
'workflowToolEmpty.goToStudio': 'Go to Studio'
'workflowToolEmpty.learnMore': 'Need help? Learn how to publish a workflow as a tool'
'workflowToolEmpty.step1': 'Build a workflow in Studio'
'workflowToolEmpty.step2': 'Click "Workflow as Tool" in the Publish menu to make it available as a tool'
'workflowToolEmpty.step3': 'Come back here to manage and reuse it'
'workflowToolEmpty.title': 'No workflows published as tools yet'
}
workflow: {
'blocks.agent': 'Agent'
'blocks.agent-v2': 'Agent'
'blocks.answer': 'Answer'
'blocks.assigner': 'Variable Assigner'
'blocks.code': 'Code'
'blocks.datasource': 'Data Source'
'blocks.datasource-empty': 'Empty Data Source'
'blocks.document-extractor': 'Doc Extractor'
'blocks.end': 'Output'
'blocks.http-request': 'HTTP Request'
'blocks.human-input': 'Human Input'
'blocks.human-input-v2': 'Human Input v2'
'blocks.if-else': 'IF/ELSE'
'blocks.iteration': 'Iteration'
'blocks.iteration-start': 'Iteration Start'
'blocks.knowledge-index': 'Knowledge Base'
'blocks.knowledge-retrieval': 'Knowledge Retrieval'
'blocks.knowledge-retrieval-v2': 'Agent Knowledge Retrieval'
'blocks.list-operator': 'List Operator'
'blocks.llm': 'LLM'
'blocks.loop': 'Loop'
'blocks.loop-end': 'Exit Loop'
'blocks.loop-start': 'Loop Start'
'blocks.mostCommon': 'Most common'
'blocks.originalStartNode': 'original start node'
'blocks.parameter-extractor': 'Parameter Extractor'
'blocks.question-classifier': 'Question Classifier'
'blocks.start': 'User Input'
'blocks.start-placeholder': 'Workflow start'
'blocks.template-transform': 'Template'
'blocks.tool': 'Tool'
'blocks.trigger-plugin': 'Integration Trigger'
'blocks.trigger-schedule': 'Schedule Trigger'
'blocks.trigger-webhook': 'Webhook Trigger'
'blocks.variable-aggregator': 'Variable Aggregator'
'blocks.variable-assigner': 'Variable Aggregator'
'blocksAbout.agent': 'Invoking large language models to answer questions or process natural language'
'blocksAbout.agent-v2': 'Invoking large language models to answer questions or process natural language'
'blocksAbout.answer': 'Define the reply content of a chat conversation'
'blocksAbout.assigner': 'The variable assignment node is used for assigning values to writable variables(like conversation variables).'
'blocksAbout.code': 'Execute a piece of Python or NodeJS code to implement custom logic'
'blocksAbout.datasource': 'Data Source About'
'blocksAbout.datasource-empty': 'Empty Data Source placeholder'
'blocksAbout.document-extractor': 'Used to parse uploaded documents into text content that is easily understandable by LLM.'
'blocksAbout.end': 'Define the output and result type of a workflow'
'blocksAbout.http-request': 'Allow server requests to be sent over the HTTP protocol'
'blocksAbout.human-input': 'Ask for human to confirm before generating the next step'
'blocksAbout.human-input-v2': 'Request input from configured contacts, email recipients, or the workflow initiator'
'blocksAbout.if-else': 'Allows you to split the workflow into two branches based on if/else conditions'
'blocksAbout.iteration': 'Perform multiple steps on a list object until all results are outputted.'
'blocksAbout.iteration-start': 'Iteration Start node'
'blocksAbout.knowledge-index': 'Knowledge Base About'
'blocksAbout.knowledge-retrieval': 'Query text content related to user questions from Knowledge Bases'
'blocksAbout.knowledge-retrieval-v2': 'Retrieve cited evidence from one or more Agent Knowledge Bases'
'blocksAbout.list-operator': 'Used to filter or sort array content.'
'blocksAbout.llm': 'Invoking large language models to answer questions or process natural language'
'blocksAbout.loop': 'Execute a loop of logic until the termination condition is met or the maximum loop count is reached.'
'blocksAbout.loop-end': 'Equivalent to "break". This node has no configuration items. When the loop body reaches this node, the loop terminates.'
'blocksAbout.loop-start': 'Loop Start node'
'blocksAbout.parameter-extractor': 'Use LLM to extract structured parameters from natural language for tool invocations or HTTP requests.'
'blocksAbout.question-classifier': 'Define the classification conditions of user questions, LLM can define how the conversation progresses based on the classification description'
'blocksAbout.start': 'Define the initial parameters for launching a workflow'
'blocksAbout.start-placeholder': 'Choose how this workflow starts'
'blocksAbout.template-transform': 'Convert data to string using Jinja template syntax'
'blocksAbout.tool': 'Use external tools to extend workflow capabilities'
'blocksAbout.trigger-plugin': 'Third-party integration trigger that starts workflows from external platform events'
'blocksAbout.trigger-schedule': 'Time-based workflow trigger that starts workflows on a schedule'
'blocksAbout.trigger-webhook': 'Webhook Trigger receives HTTP pushes from third-party systems to automatically trigger workflows.'
'blocksAbout.variable-aggregator': 'Aggregate multi-branch variables into a single variable for unified configuration of downstream nodes.'
'blocksAbout.variable-assigner': 'Aggregate multi-branch variables into a single variable for unified configuration of downstream nodes.'
'changeHistory.edgeDelete': 'Node disconnected'
'changeHistory.humanInputMigration': 'Human Input nodes migrated'
'changeHistory.nodeAdd': 'Node added'
'changeHistory.nodeChange': 'Node changed'
'changeHistory.nodeConnect': 'Node connected'
'changeHistory.nodeDelete': 'Node deleted'
'changeHistory.nodeDescriptionChange': 'Node description changed'
'changeHistory.nodeDragStop': 'Node moved'
'changeHistory.nodePaste': 'Node pasted'
'changeHistory.nodeResize': 'Node resized'
'changeHistory.nodeTitleChange': 'Node title changed'
'changeHistory.noteAdd': 'Note added'
'changeHistory.noteChange': 'Note changed'
'changeHistory.noteDelete': 'Note deleted'
'chatVariable.button': 'Add Variable'
'chatVariable.modal.addArrayValue': 'Add Value'
'chatVariable.modal.arrayValue': 'Value'
'chatVariable.modal.description': 'Description'
'chatVariable.modal.descriptionPlaceholder': 'Describe the variable'
'chatVariable.modal.descriptionTooLong': 'Description must be {{maxLength}} characters or less'
'chatVariable.modal.editInForm': 'Edit in Form'
'chatVariable.modal.editInJSON': 'Edit in JSON'
'chatVariable.modal.editTitle': 'Edit Conversation Variable'
'chatVariable.modal.name': 'Name'
'chatVariable.modal.namePlaceholder': 'Variable name'
'chatVariable.modal.objectKey': 'Key'
'chatVariable.modal.objectKeyPatternError': 'Key can only contain letters, numbers, and underscores'
'chatVariable.modal.objectKeyRequired': 'Object key cannot be empty'
'chatVariable.modal.objectType': 'Type'
'chatVariable.modal.objectValue': 'Default Value'
'chatVariable.modal.oneByOne': 'Add one by one'
'chatVariable.modal.title': 'Add Conversation Variable'
'chatVariable.modal.type': 'Type'
'chatVariable.modal.value': 'Default Value'
'chatVariable.modal.valuePlaceholder': 'Default value, leave blank to not set'
'chatVariable.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. '
'chatVariable.panelTitle': 'Conversation Variables'
'chatVariable.storedContent': 'Stored content'
'chatVariable.tips': 'Tips'
'chatVariable.updatedAt': 'Updated at '
'collaboration.capabilityUnavailable': 'Unable to determine whether collaboration is available for this workspace.'
'collaboration.cleanupFailed': 'The draft is up to date, but the old local draft could not be cleared. Cleanup will retry automatically.'
'collaboration.historyAction.generic': 'A collaborator performed an undo/redo action'
'collaboration.joinDenied': 'Unable to join collaboration. Check your access and workspace plan, then reopen the editor.'
'collaboration.joinUnavailable': 'Unable to connect to collaboration. Changes on this canvas may not be saved.'
'collaboration.reloadPage': 'Reload Page'
'collaboration.replacedWithPendingEdits': 'The draft was restored or replaced by an import. The latest draft is loaded, and unconfirmed local edits from the old draft have been cleared.'
'common.accessAPIReference': 'Access API Reference'
'common.accessPointDescription': 'Configure web app, API, MCP, and triggers'
'common.addBlock': 'Add Node'
'common.addDescription': 'Add description...'
'common.addFailureBranch': 'Add Fail Branch'
'common.addParallelNode': 'Add Parallel Node'
'common.addTitle': 'Add title...'
'common.autoSaved': 'Auto-Saved'
'common.backupCurrentDraft': 'Backup Current Draft'
'common.branch': 'BRANCH'
'common.chooseDSL': 'Choose DSL file'
'common.chooseStartNodeToRun': 'Choose the start node to run'
'common.clearCanvasConfirmDescription': 'Saving will clear this workflow. Continue?'
'common.clearCanvasConfirmTitle': 'Clear the canvas?'
'common.clipboardVersionCompatibilityWarning': 'This content was copied from a different Dify app version. Some parts may be incompatible.'
'common.commentMode': 'Comment Mode'
'common.configure': 'Configure'
'common.configureRequired': 'Needs Setup'
'common.copy': 'Copy'
'common.currentDraft': 'Current Draft'
'common.currentDraftUnpublished': 'Current Draft Unpublished'
'common.currentView': 'Current View'
'common.currentWorkflow': 'Current Workflow'
'common.debugAndPreview': 'Preview'
'common.deployDescription': 'Push versions to environments'
'common.disconnect': 'Disconnect'
'common.draftSaveFailed': 'Draft save failed'
'common.duplicate': 'Duplicate'
'common.edgeLabel': 'Connection from {{source}} to {{target}}'
'common.effectVarConfirm.content': 'The variable is used in other nodes. Do you still want to remove it?'
'common.effectVarConfirm.title': 'Remove Variable'
'common.enableJinja': 'Enable Jinja template support'
'common.exitVersions': 'Exit Versions'
'common.exportImage': 'Export Image'
'common.exportJPEG': 'Export as JPEG'
'common.exportPNG': 'Export as PNG'
'common.exportSVG': 'Export as SVG'
'common.features': 'Features'
'common.featuresDescription': 'Enhance web app user experience'
'common.goBackToEdit': 'Go back to editor'
'common.handMode': 'Hand Mode'
'common.humanInputEmailTip': 'Email (Delivery Method) sent to your configured recipients'
'common.humanInputEmailTipInDebugMode': 'Email (Delivery Method) sent to <email>{{email}}</email>'
'common.humanInputWebappTip': 'Debug preview only, user will not see this in web app.'
'common.importDSL': 'Import DSL'
'common.importDSLTip': 'Current draft will be overwritten.\nExport workflow as backup before importing.'
'common.importFailure': 'Import Failed'
'common.importSuccess': 'Import Successfully'
'common.importWarning': 'Caution'
'common.importWarningDetails': 'DSL version difference may affect certain features'
'common.input': 'Input'
'common.insertVarTip': "Press the '/' key to insert quickly"
'common.jinjaEditorPlaceholder': "Type '/' or '{' to insert variable"
'common.jumpToNode': 'Jump to this node'
'common.latestPublished': 'Latest Published'
'common.learnMore': 'Learn More'
'common.listening': 'Listening'
'common.loadMore': 'Load More'
'common.manageInTools': 'Manage in Tools'
'common.maxTreeDepth': 'Maximum limit of {{depth}} nodes per branch'
'common.model': 'Model'
'common.moreActions': 'More Actions'
'common.needAdd': '{{node}} node must be added'
'common.needConnectTip': 'This step is not connected to anything'
'common.needStartNode': 'At least one start node must be added'
'common.noVar': 'No variable'
'common.nodeDescription': 'Description'
'common.nodeTitle': 'Node name'
'common.notPublishedYet': 'Not published yet'
'common.notRunning': 'Not running yet'
'common.onFailure': 'On Failure'
'common.openWebApp': 'Open web app'
'common.openWebAppDescription': 'Open the published app in a new tab'
'common.output': 'Output'
'common.overwriteAndImport': 'Overwrite and Import'
'common.parallel': 'PARALLEL'
'common.parallelTip.click.desc': ' to add'
'common.parallelTip.click.title': 'Click'
'common.parallelTip.drag.desc': ' to connect'
'common.parallelTip.drag.title': 'Drag'
'common.pasteHere': 'Paste Here'
'common.pointerMode': 'Pointer Mode'
'common.preview': 'Preview'
'common.previewPlaceholder': 'Enter content in the box below to start debugging the Chatbot'
'common.processData': 'Process Data'
'common.publish': 'Publish'
'common.publishToMarketplace': 'Publish to Marketplace'
'common.publishToMarketplaceDescription': 'List this app as a template'
'common.publishToMarketplaceFailed': 'Failed to publish to Marketplace'
'common.publishUpdate': 'Publish Update'
'common.published': 'Published'
'common.publishedAt': 'Published'
'common.publishedBy': 'Published {{time}} by {{author}}'
'common.publishingToMarketplace': 'Publishing...'
'common.redo': 'Redo'
'common.restore': 'Restore'
'common.run': 'Test Run'
'common.runAllTriggers': 'Run all triggers'
'common.runHistory': 'Run History'
'common.running': 'Running'
'common.scheduleTriggerRunFailed': 'Schedule trigger run failed'
'common.searchVar': 'Search variable'
'common.setVarValuePlaceholder': 'Set variable'
'common.showRunHistory': 'Show Run History'
'common.syncingData': 'Syncing data, just a few seconds.'
'common.undo': 'Undo'
'common.unpublished': 'Unpublished'
'common.upToDate': 'Up to date'
'common.variableNamePlaceholder': 'Variable name'
'common.versionHistory': 'Version History'
'common.viewOnly': 'View Only'
'common.viewRunHistory': 'View run history'
'common.webhookDebugFailed': 'Webhook debug failed'
'common.webhookDebugRequestFailed': 'Webhook debug request failed'
'common.workflowAsToolDescription': 'Use as a tool in other apps'
'common.workflowAsToolDisabledHint': 'Publish the latest workflow and ensure a connected User Input node before configuring it as a tool.'
'common.workflowAsToolReady': 'Ready'
'common.workflowAsToolReconfigure': 'Reconfigure'
'common.workflowAsToolTip': 'The workflow changed. Reconfigure to apply the updates.'
'common.workflowAsToolUpdateNeeded': 'Update Needed'
'common.workflowProcess': 'Workflow Process'
'common.workflowProcessFailed': 'Workflow Process failed'
'common.workflowProcessPaused': 'Workflow Process paused'
'common.workflowProcessRunning': 'Workflow Process running'
'common.workflowProcessSucceeded': 'Workflow Process succeeded'
'common.workflowSaveStatus': 'Workflow save status'
customWebhook: 'Custom Webhook'
difyTeam: 'Dify Team'
'entryNodeStatus.enabled': 'START'
'env.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.'
'env.envPanelButton': 'Add Variable'
'env.envPanelTitle': 'Environment Variables'
'env.export.checkbox': 'Export secret values'
'env.export.export': 'Export DSL with secret values '
'env.export.ignore': 'Export DSL'
'env.export.name': 'Name'
'env.export.secret': 'Secret'
'env.export.title': 'Export Secret environment variables?'
'env.export.value': 'Value'
'env.modal.description': 'Description'
'env.modal.descriptionPlaceholder': 'Describe the variable'
'env.modal.editTitle': 'Edit Environment Variable'
'env.modal.name': 'Name'
'env.modal.namePlaceholder': 'env name'
'env.modal.secretTip': 'Used to define sensitive information or data, with DSL settings configured for leak prevention.'
'env.modal.title': 'Add Environment Variable'
'env.modal.type': 'Type'
'env.modal.value': 'Value'
'env.modal.valuePlaceholder': 'env value'
'env.modal.valueRequired': 'Value cannot be empty'
'errorMsg.authRequired': 'Authorization is required'
'errorMsg.configureModel': 'Configure a model'
'errorMsg.duplicateOutputVariable': 'Duplicate Output node variable "{{variable}}". Output node variable names must be unique.'
'errorMsg.fieldRequired': '{{field}} is required'
'errorMsg.fields.code': 'Code'
'errorMsg.fields.model': 'Model'
'errorMsg.fields.rerankModel': 'A configured Rerank Model'
'errorMsg.fields.variable': 'Variable Name'
'errorMsg.fields.variableValue': 'Variable Value'
'errorMsg.fields.visionVariable': 'Vision Variable'
'errorMsg.invalidJson': '{{field}} is invalid JSON'
'errorMsg.invalidVariable': 'Invalid variable. Please select an existing variable.'
'errorMsg.modelPluginNotInstalled': 'Invalid variable. Configure a model to enable this variable.'
'errorMsg.noValidTool': '{{field}} no valid tool selected'
'errorMsg.rerankModelRequired': 'A configured Rerank Model is required'
'errorMsg.toolParameterRequired': '{{field}}: parameter [{{param}}] is required'
'globalVar.description': 'System variables are global variables that can be referenced by any node without wiring when the type is correct, such as end-user ID and workflow ID.'
'globalVar.fieldsDescription.appId': 'Application ID'
'globalVar.fieldsDescription.conversationId': 'Conversation ID'
'globalVar.fieldsDescription.dialogCount': 'Conversation Count'
'globalVar.fieldsDescription.triggerTimestamp': 'Application start timestamp'
'globalVar.fieldsDescription.userId': 'User ID'
'globalVar.fieldsDescription.workflowId': 'Workflow ID'
'globalVar.fieldsDescription.workflowRunId': 'Workflow run ID'
'globalVar.title': 'System Variables'
'keyboard.moveDraftComment': 'Move draft comment'
'keyboard.moveDraftHelp': 'Press Enter or Space to start or finish moving. Use arrow keys to move; hold Shift for larger steps.'
'keyboard.moveHelp': 'Use arrow keys to move. Hold Shift for larger steps.'
'keyboard.nodeMoved': 'Moved {{title}} to x {{x}}, y {{y}}.'
'keyboard.openComment': 'Open comment by {{name}}'
'keyboard.position': 'Position: x {{x}}, y {{y}}'
'nodes.agent.checkList.strategyNotSelected': 'Strategy not selected'
'nodes.agent.modelNotSelected': 'Model not selected'
'nodes.agent.outputRoutes.route': 'Route {{index}}'
'nodes.agent.outputRoutes.title': 'Output Routes'
'nodes.agent.outputVars.switch': 'Selected output route ID.'
'nodes.agent.outputVars.text': 'agent generated content'
'nodes.agent.roster.label': 'Agent'
'nodes.agent.toolNotAuthorizedTooltip': '{{tool}} is not authorized'
'nodes.agent.toolNotInstallTooltip': '{{tool}} is not installed'
'nodes.answer.answer': 'Answer'
'nodes.assigner.assignedVariable': 'Assigned Variable'
'nodes.assigner.variable': 'Variable'
'nodes.code.inputVars': 'Input Variables'
'nodes.code.outputVars': 'Output Variables'
'nodes.code.syncFunctionSignature': 'Sync function signature to code'
'nodes.common.errorHandle.defaultValue.desc': 'When an error occurs, specify a static output content.'
'nodes.common.errorHandle.defaultValue.inLog': 'Node exception, outputting according to default values.'
'nodes.common.errorHandle.defaultValue.output': 'Output Default Value'
'nodes.common.errorHandle.defaultValue.title': 'Default Value'
'nodes.common.errorHandle.failBranch.customize': 'Go to the canvas to customize the fail branch logic.'
'nodes.common.errorHandle.failBranch.customizeTip': 'When the fail branch is activated, exceptions thrown by nodes will not terminate the process. Instead, it will automatically execute the predefined fail branch, allowing you to flexibly provide error messages, reports, fixes, or skip actions.'
'nodes.common.errorHandle.failBranch.desc': 'When an error occurs, it will execute the exception branch'
'nodes.common.errorHandle.failBranch.inLog': 'Node exception, will automatically execute the fail branch. The node output will return an error type and error message and pass them to downstream.'
'nodes.common.errorHandle.failBranch.title': 'Fail Branch'
'nodes.common.errorHandle.none.desc': 'The node will stop running if an exception occurs and is not handled'
'nodes.common.errorHandle.none.title': 'None'
'nodes.common.errorHandle.partialSucceeded.tip': 'There are {{num}} nodes in the process running abnormally, please go to <tracingLink>TRACING</tracingLink> to check the logs.'
'nodes.common.errorHandle.tip': 'Exception handling strategy, triggered when a node encounters an exception.'
'nodes.common.errorHandle.title': 'Error Handling'
'nodes.common.inputVars': 'Input Variables'
'nodes.common.memories.builtIn': 'Built-in'
'nodes.common.memories.tip': 'Chat memory'
'nodes.common.memories.title': 'Memories'
'nodes.common.memory.assistant': 'Assistant prefix'
'nodes.common.memory.conversationRoleName': 'Conversation Role Name'
'nodes.common.memory.memory': 'Memory'
'nodes.common.memory.memoryTip': 'Chat memory settings'
'nodes.common.memory.user': 'User prefix'
'nodes.common.memory.windowSize': 'Window Size'
'nodes.common.outputVars': 'Output Variables'
'nodes.common.pluginNotInstalled': 'Integration is not installed'
'nodes.common.pluginsNotInstalled': '{{count}} integrations not installed'
'nodes.common.retry.maxRetries': 'max retries'
'nodes.common.retry.ms': 'ms'
'nodes.common.retry.retries': '{{num}} Retries'
'nodes.common.retry.retry': 'Retry'
'nodes.common.retry.retryFailed': 'Retry failed'
'nodes.common.retry.retryInterval': 'retry interval'
'nodes.common.retry.retryOnFailure': 'retry on failure'
'nodes.common.retry.retrySuccessful': 'Retry successful'
'nodes.common.retry.retryTimes': 'Retry {{times}} times on failure'
'nodes.common.retry.retrying': 'Retrying...'
'nodes.common.retry.times': 'times'
'nodes.common.typeSwitch.input': 'Input value'
'nodes.common.typeSwitch.variable': 'Use variable'
'nodes.dataSource.add': 'Add Data Source'
'nodes.dataSource.supportedFileFormats': 'Supported file formats'
'nodes.dataSource.supportedFileFormatsPlaceholder': 'File extension, e.g. doc'
'nodes.docExtractor.inputVar': 'Input Variable'
'nodes.docExtractor.learnMore': 'Learn more'
'nodes.docExtractor.outputVars.text': 'Extracted text'
'nodes.docExtractor.supportFileTypes': 'Support file types: {{types}}.'
'nodes.end.output.variable': 'output variable'
'nodes.http.api': 'API'
'nodes.http.binaryFileVariable': 'Binary File Variable'
'nodes.humanInput.errorMsg.duplicateActionId': 'Duplicate action ID found in user actions'
'nodes.humanInput.errorMsg.emailConfigIncomplete': 'Please complete the Email delivery method configuration'
'nodes.humanInput.errorMsg.emptyActionId': 'Action ID cannot be empty'
'nodes.humanInput.errorMsg.emptyActionTitle': 'Action title cannot be empty'
'nodes.humanInput.errorMsg.noDeliveryMethod': 'Please select at least one delivery method'
'nodes.humanInput.errorMsg.noDeliveryMethodEnabled': 'Please enable at least one delivery method'
'nodes.humanInput.errorMsg.noUserActions': 'Please add at least one user action'
'nodes.humanInput.errorMsg.reservedActionId': '{{id}} is reserved for the timeout branch. Choose another action ID.'
'nodes.humanInput.output.actionId': 'Action ID user triggered'
'nodes.humanInput.output.actionValue': 'Selected action value'
'nodes.humanInput.output.formInput': 'Form input value'
'nodes.humanInput.output.renderedContent': 'Rendered content'
'nodes.humanInput.timeout.title': 'Timeout'
'nodes.humanInputMigration.action.migrate': 'Migrate'
'nodes.humanInputMigration.action.migrateNow': 'Migrate now'
'nodes.humanInputMigration.action.migrating': 'Migrating...'
'nodes.humanInputMigration.banner.ariaLabel': 'Human Input migration notice'
'nodes.humanInputMigration.banner.description': 'This workflow uses the old Human Input node. Migrate all old nodes before adding new ones.'
'nodes.humanInputMigration.banner.learnMore': 'Learn more'
'nodes.humanInputMigration.blocker.configuredDisabledMethod': 'a disabled delivery method still contains configuration'
'nodes.humanInputMigration.blocker.conflictingEmailTemplates': 'enabled email methods use conflicting templates'
'nodes.humanInputMigration.blocker.invalidDefaultValue': 'Invalid default value'
'nodes.humanInputMigration.blocker.invalidEmail': 'a recipient email is invalid'
'nodes.humanInputMigration.blocker.invalidEmailConfiguration': 'an enabled email method is incomplete'
'nodes.humanInputMigration.blocker.missingRecipients': 'the node has no supported recipients'
'nodes.humanInputMigration.blocker.unresolvedMember': 'a workspace member cannot be resolved to a contact or verified email'
'nodes.humanInputMigration.blocker.unsupportedDeliveryMethod': 'an enabled delivery method is not supported by Human Input v2'
'nodes.humanInputMigration.blocker.unsupportedInputType': 'The field {{field}} cannot be migrated yet. You can continue using legacy Human Input nodes.'
'nodes.humanInputMigration.blocker.unsupportedVersion': 'the node has an unsupported version value'
'nodes.humanInputMigration.dialog.description': 'Your recipients, form, and actions carry over.'
'nodes.humanInputMigration.dialog.draftNotice': 'Only this draft changes. Published versions keep running until you publish again.'
'nodes.humanInputMigration.dialog.review': 'Review the nodes and publish when ready.'
'nodes.humanInputMigration.dialog.title': 'Migrate {{count}} Human Input nodes'
'nodes.humanInputMigration.disabledBadge': 'MIGRATION REQUIRED'
'nodes.humanInputMigration.disabledReason': 'Migrate old Human Input nodes before adding a new one.'
'nodes.humanInputMigration.error.blocked': '{{nodeTitle}} could not be migrated: {{reason}}.'
'nodes.humanInputMigration.error.graphChanged': 'The workflow changed during migration. Try again; your current edits have been kept.'
'nodes.humanInputMigration.error.preflight': 'Migration could not be prepared. Your workflow was not changed. Please try again.'
'nodes.humanInputMigration.error.sync': 'The migrated workflow could not be saved. Review the current draft and try again.'
'nodes.humanInputMigration.incompatibleVersions': 'Old and new Human Input nodes cannot be used in the same workflow.'
'nodes.humanInputMigration.oldVersion': 'OLD VERSION'
'nodes.humanInputMigration.preview.author': 'By Dify Team'
'nodes.humanInputMigration.preview.description': 'Migrate old Human Input nodes before adding a new one.'
'nodes.humanInputMigration.success': 'Human Input nodes migrated successfully'
'nodes.humanInputV2.card.configured': '{{count}} recipients configured'
'nodes.humanInputV2.card.contactsOnly': '{{count}} contacts'
'nodes.humanInputV2.card.empty': 'No one can approve this step yet'
'nodes.humanInputV2.card.initiatorAndContacts': 'Initiator and {{count}} contacts'
'nodes.humanInputV2.card.initiatorOnly': 'Initiator only'
'nodes.humanInputV2.card.invalid': 'Recipient configuration needs attention'
'nodes.humanInputV2.debug.channel.ding_talk': 'DingTalk'
'nodes.humanInputV2.debug.channel.email': 'Email'
'nodes.humanInputV2.debug.channel.feishu': 'Feishu'
'nodes.humanInputV2.debug.channel.lark': 'Lark'
'nodes.humanInputV2.debug.channel.ms_teams': 'Microsoft Teams'
'nodes.humanInputV2.debug.channel.slack': 'Slack'
'nodes.humanInputV2.debug.channel.we_com': 'WeCom'
'nodes.humanInputV2.debug.configure': 'Configure Debug Mode'
'nodes.humanInputV2.debug.keepOneChannel': 'Keep at least one channel on'
'nodes.humanInputV2.debug.sendVia': 'Send debug notifications via'
'nodes.humanInputV2.debug.title': 'Debug Mode'
'nodes.humanInputV2.debug.toggle': 'Enable Debug Mode'
'nodes.humanInputV2.debug.unsupported': 'Unsupported imported channels: {{channels}}. Remove or update them before running this workflow.'
'nodes.humanInputV2.disabled': 'Human Input v2 is unavailable while HITL IM is disabled.'
'nodes.humanInputV2.error.bodyRequired': 'Message body is required'
'nodes.humanInputV2.error.debugChannelRequired': 'Select at least one Debug Mode channel'
'nodes.humanInputV2.error.recipientDuplicate': 'Remove duplicate recipients'
'nodes.humanInputV2.error.recipientInvalid': 'Repair invalid recipient configuration'
'nodes.humanInputV2.error.recipientRequired': 'Add at least one recipient'
'nodes.humanInputV2.error.recipientVerificationFailed': "Couldn't verify contact recipients"
'nodes.humanInputV2.error.requestURLDuplicate': 'The message body can contain only one Request URL.'
'nodes.humanInputV2.error.requestURLRequired': 'Insert a Request URL in the message body.'
'nodes.humanInputV2.error.subjectRequired': 'Message subject is required'
'nodes.humanInputV2.error.version': 'Human Input v2 requires string version 2'
'nodes.humanInputV2.recipients.addContact': 'Add contact'
'nodes.humanInputV2.recipients.addEmail': 'Add'
'nodes.humanInputV2.recipients.addRecipient': 'Add recipient'
'nodes.humanInputV2.recipients.added': 'Added'
'nodes.humanInputV2.recipients.allWorkspaceContacts': 'All workspace contacts'
'nodes.humanInputV2.recipients.allWorkspaceContactsDescription': 'Notify all contacts in the workspace; any of them can approve'
'nodes.humanInputV2.recipients.cancel': 'Cancel'
'nodes.humanInputV2.recipients.chooseVariable': 'Choose variable'
'nodes.humanInputV2.recipients.confirm': 'Confirm'
'nodes.humanInputV2.recipients.contactInfo': 'Contact details for {{name}}'
'nodes.humanInputV2.recipients.contactSource.all': 'All'
'nodes.humanInputV2.recipients.contactSource.external': 'External'
'nodes.humanInputV2.recipients.contactSource.organization': 'Organization'
'nodes.humanInputV2.recipients.contactSource.workspace': 'Workspace'
'nodes.humanInputV2.recipients.contactSourceLabel': 'Contact source'
'nodes.humanInputV2.recipients.duplicateSource': 'Already added through {{name}} ({{source}}).'
'nodes.humanInputV2.recipients.edit': 'Edit {{recipient}}'
'nodes.humanInputV2.recipients.editRecipient': 'Edit recipient'
'nodes.humanInputV2.recipients.emailAlreadySelected': 'Each email can only be selected once.'
'nodes.humanInputV2.recipients.emailInvalidOrDuplicate': 'Enter a valid email that has not already been added'
'nodes.humanInputV2.recipients.emailLabel': 'One-time email recipient'
'nodes.humanInputV2.recipients.empty': 'No recipients configured'
'nodes.humanInputV2.recipients.help': 'Choose who can respond to this Human Input step.'
'nodes.humanInputV2.recipients.initiator': 'The user who starts this run through Web App or CLI can approve'
'nodes.humanInputV2.recipients.initiatorDescription': 'The person who starts this workflow run can respond.'
'nodes.humanInputV2.recipients.initiatorUnavailableInTriggerWorkflow': 'Trigger runs have no initiator to receive approval requests. Select a contact or use a variable to provide an email address.'
'nodes.humanInputV2.recipients.inputHelp': 'Type or paste multiple emails separated by commas. Press / to insert a variable.'
'nodes.humanInputV2.recipients.insertVariable': 'Insert variable'
'nodes.humanInputV2.recipients.loadError': 'Contacts could not be loaded. Stored contact IDs are preserved.'
'nodes.humanInputV2.recipients.loading': 'Loading contacts…'
'nodes.humanInputV2.recipients.noResults': 'No contacts found'
'nodes.humanInputV2.recipients.placeholder': 'Search contacts or add emails'
'nodes.humanInputV2.recipients.remove': 'Remove {{recipient}}'
'nodes.humanInputV2.recipients.removeHint': 'Press Backspace or Delete to remove.'
'nodes.humanInputV2.recipients.resultCount': '{{count}} matching recipients'
'nodes.humanInputV2.recipients.search': 'Search contacts'
'nodes.humanInputV2.recipients.searchPlaceholder': 'Search by name or email'
'nodes.humanInputV2.recipients.selectionHint': '{{count}} recipients selected. At the start of the input, press Left Arrow to focus them.'
'nodes.humanInputV2.recipients.title': 'Recipients'
'nodes.humanInputV2.recipients.type.all_workspace_contacts': 'All workspace contacts'
'nodes.humanInputV2.recipients.type.contact': 'Contact'
'nodes.humanInputV2.recipients.type.dynamic_email': 'Dynamic email'
'nodes.humanInputV2.recipients.type.initiator': 'Initiator'
'nodes.humanInputV2.recipients.type.onetime_email': 'One-time email'
'nodes.humanInputV2.recipients.typeLabel': 'Recipient type'
'nodes.humanInputV2.recipients.useThisInstead': 'Use this instead'
'nodes.humanInputV2.recipients.variableRequired': 'Choose an email variable'
'nodes.humanInputV2.template.body': 'Body'
'nodes.humanInputV2.template.description': 'Email and IM fallback copy'
'nodes.humanInputV2.template.insertRequestURL': 'Insert Request URL'
'nodes.humanInputV2.template.insertVariable': 'Insert variable'
'nodes.humanInputV2.template.notConfigured': 'Not configured'
'nodes.humanInputV2.template.requestURLHint': 'Recipients use this link to open the approval form. Include exactly one Request URL.'
'nodes.humanInputV2.template.requestURLInserted': 'Request URL inserted'
'nodes.humanInputV2.template.saveAndTest': 'Save and test'
'nodes.humanInputV2.template.subject': 'Subject'
'nodes.humanInputV2.template.subjectPlaceholder': 'Enter message subject'
'nodes.humanInputV2.template.test': 'Test message'
'nodes.humanInputV2.template.testChannel': 'Test channel'
'nodes.humanInputV2.template.testCompleted': 'Test request completed. Check the selected channel for the message.'
'nodes.humanInputV2.template.testDescription': 'Save the current template and send a test notification through the selected channel.'
'nodes.humanInputV2.template.testFailed': 'Test failed. Check the channel configuration and try again.'
'nodes.humanInputV2.template.testInputsRequired': 'Fill in all test variable values.'
'nodes.humanInputV2.template.testSaveFailed': 'Could not save the workflow draft. The test was not sent.'
'nodes.humanInputV2.template.testUnavailable': 'This environment does not support message template testing yet.'
'nodes.humanInputV2.template.title': 'Message template'
'nodes.ifElse.operator': 'Operator'
'nodes.iteration.currentIteration': 'Current Iteration'
'nodes.iteration.deleteDesc': 'Deleting the iteration node will delete all child nodes'
'nodes.iteration.deleteTitle': 'Delete Iteration Node?'
'nodes.iteration.input': 'Input'
'nodes.iteration.output': 'Output Variables'
'nodes.iteration.parallelModeEnableDesc': 'In parallel mode, tasks within iterations support parallel execution. You can configure this in the properties panel on the right.'
'nodes.iteration.parallelModeEnableTitle': 'Parallel Mode Enabled'
'nodes.iteration.parallelModeUpper': 'PARALLEL MODE'
'nodes.knowledgeBase.aboutRetrieval': 'about retrieval method.'
'nodes.knowledgeBase.changeChunkStructure': 'Change Chunk Structure'
'nodes.knowledgeBase.chooseChunkStructure': 'Choose a chunk structure'
'nodes.knowledgeBase.chunkIsRequired': 'Chunk structure is required'
'nodes.knowledgeBase.chunkStructure': 'Chunk Structure'
'nodes.knowledgeBase.chunkStructureTip.learnMore': 'Learn more'
'nodes.knowledgeBase.chunkStructureTip.message': 'The Dify Knowledge Base supports three chunking structures: General, Parent-child, and Q&A. Each knowledge base can have only one structure. The output from the preceding node must align with the selected chunk structure. Note that the choice of chunking structure affects the available index methods.'
'nodes.knowledgeBase.chunkStructureTip.title': 'Please choose a chunk structure'
'nodes.knowledgeBase.chunksInput': 'Chunks'
'nodes.knowledgeBase.chunksInputTip': 'The input variable of the knowledge base node is Chunks. The variable type is an object with a specific JSON Schema which must be consistent with the selected chunk structure.'
'nodes.knowledgeBase.chunksVariableIsRequired': 'Chunks variable is required'
'nodes.knowledgeBase.embeddingModelNotConfigured': 'Embedding model not configured'
'nodes.knowledgeBase.indexMethodIsRequired': 'Index method is required'
'nodes.knowledgeBase.rerankingModelIsInvalid': 'Reranking model is invalid'
'nodes.knowledgeBase.rerankingModelIsRequired': 'Reranking model is required'
'nodes.knowledgeBase.retrievalSettingIsRequired': 'Retrieval setting is required'
'nodes.knowledgeRetrieval.knowledge': 'Knowledge Base'
'nodes.knowledgeRetrievalV2.errors.bindingNotEnabled': 'This Agent Knowledge Base is not bound to the workflow. Republish the workflow or ask a workspace owner to restore the binding.'
'nodes.knowledgeRetrievalV2.errors.permissionsNotReady': 'Permissions for this Agent Knowledge Base are not ready. Ask a workspace owner to finish the permission setup.'
'nodes.knowledgeRetrievalV2.errors.spaceUnavailable': 'This Agent Knowledge Base is not ready for workflow retrieval. Select an active, provisioned Agent Knowledge Base.'
'nodes.knowledgeRetrievalV2.errors.workflowAccessDisabled': "Workflow access is disabled for this Agent Knowledge Base. Ask a workspace owner to enable it in this Agent Knowledge Base's settings."
'nodes.knowledgeRetrievalV2.knowledgeSpaces': 'Agent Knowledge Bases'
'nodes.knowledgeRetrievalV2.knowledgeTip': 'Click “+” to add an Agent Knowledge Base.'
'nodes.knowledgeRetrievalV2.loadSpacesError': 'Agent Knowledge Bases could not be loaded. Check service availability and your permissions.'
'nodes.knowledgeRetrievalV2.mode.deep': 'Deep'
'nodes.knowledgeRetrievalV2.mode.fast': 'Fast'
'nodes.knowledgeRetrievalV2.mode.research': 'Research'
'nodes.knowledgeRetrievalV2.mode.researchHint': 'Research mode has higher latency and model cost.'
'nodes.knowledgeRetrievalV2.mode.spaceDefault': 'Follow each Agent Knowledge Base profile'
'nodes.knowledgeRetrievalV2.mode.title': 'Retrieval mode'
'nodes.knowledgeRetrievalV2.noSpaces': 'No available Agent Knowledge Bases'
'nodes.knowledgeRetrievalV2.outputVars.content': 'Retrieved evidence text'
'nodes.knowledgeRetrievalV2.outputVars.degradationFlags': 'Agent Knowledge Base degradation flags'
'nodes.knowledgeRetrievalV2.outputVars.metadata': 'Score, sources, Agent Knowledge Base ID, and structured citation'
'nodes.knowledgeRetrievalV2.outputVars.metrics': 'Aggregated retrieval metrics'
'nodes.knowledgeRetrievalV2.outputVars.mode': 'Effective mode, or mixed when Agent Knowledge Bases use different defaults'
'nodes.knowledgeRetrievalV2.outputVars.result': 'Globally ranked Agent Knowledge Base evidence'
'nodes.knowledgeRetrievalV2.outputVars.title': 'Section or document title'
'nodes.knowledgeRetrievalV2.outputVars.totalMs': 'End-to-end retrieval latency in milliseconds'
'nodes.knowledgeRetrievalV2.queryInputRequired': 'Provide a query text or a query image.'
'nodes.knowledgeRetrievalV2.queryText': 'Query text'
'nodes.knowledgeRetrievalV2.selectTitle': 'Select Agent Knowledge Bases'
'nodes.knowledgeRetrievalV2.selectedCount': 'Selected: {{count}}'
'nodes.knowledgeRetrievalV2.unavailable': 'Unavailable'
'nodes.listFilter.filterConditionComparisonOperator': 'Filter Condition Comparison Operator'
'nodes.listFilter.filterConditionComparisonValue': 'Filter Condition value'
'nodes.listFilter.filterConditionKey': 'Filter Condition Key'
'nodes.listFilter.inputVar': 'Input Variable'
'nodes.llm.prompt': 'prompt'
'nodes.llm.sysQueryInUser': 'sys.query in user message is required'
'nodes.loop.deleteDesc': 'Deleting the loop node will remove all child nodes'
'nodes.loop.deleteTitle': 'Delete Loop Node?'
'nodes.loop.loopMaxCountError': 'Please enter a valid maximum loop count, ranging from 1 to {{maxCount}}'
'nodes.note.addNote': 'Add Note'
'nodes.note.editor.bold': 'Bold'
'nodes.note.editor.bulletList': 'Bullet List'
'nodes.note.editor.enterUrl': 'Enter URL...'
'nodes.note.editor.invalidUrl': 'Invalid URL'
'nodes.note.editor.italic': 'Italic'
'nodes.note.editor.label': 'Note content'
'nodes.note.editor.large': 'Large'
'nodes.note.editor.link': 'Link'
'nodes.note.editor.medium': 'Medium'
'nodes.note.editor.openLink': 'Open'
'nodes.note.editor.placeholder': 'Write your note...'
'nodes.note.editor.showAuthor': 'Show Author'
'nodes.note.editor.small': 'Small'
'nodes.note.editor.strikethrough': 'Strikethrough'
'nodes.note.editor.unlink': 'Unlink'
'nodes.parameterExtractor.addExtractParameterContent.descriptionPlaceholder': 'Extract Parameter Description'
'nodes.parameterExtractor.addExtractParameterContent.namePlaceholder': 'Extract Parameter Name'
'nodes.parameterExtractor.addExtractParameterContent.typePlaceholder': 'Extract Parameter Type'
'nodes.parameterExtractor.extractParameters': 'Extract Parameters'
'nodes.parameterExtractor.inputVar': 'Input Variable'
'nodes.questionClassifiers.class': 'Class'
'nodes.questionClassifiers.defaultLabel': 'CLASS {{index}}'
'nodes.questionClassifiers.inputVars': 'Input Variables'
'nodes.questionClassifiers.model': 'model'
'nodes.questionClassifiers.topicName': 'Topic Name'
'nodes.start.inputField': 'Input Field'
'nodes.start.noVarTip': 'Set inputs that can be used in the Workflow'
'nodes.start.required': 'required'
'nodes.start.userInputTipDescription': 'Define inputs to collect from end users when your workflow starts on demand.'
'nodes.startPlaceholder.browseMoreOnMarketplace': 'Browse more in Marketplace'
'nodes.startPlaceholder.noTriggersFound': 'No triggers were found'
'nodes.startPlaceholder.nodeCollapsedDescription': 'Click to configure the start node'
'nodes.startPlaceholder.nodeDescription': 'Pick a start node from the right panel'
'nodes.startPlaceholder.panelDescription': 'The start node defines what triggers your workflow to run'
'nodes.startPlaceholder.panelTitle': 'Pick a start node'
'nodes.startPlaceholder.userInputConflictTip': 'User Input cannot be combined with other triggers'
'nodes.startPlaceholder.validationRequired': 'Choose a start node first.'
'nodes.templateTransform.code': 'Code'
'nodes.templateTransform.codeSupportTip': 'Only supports Jinja2'
'nodes.templateTransform.inputVars': 'Input Variables'
'nodes.templateTransform.outputVars.output': 'Transformed content'
'nodes.tool.authorizationRequired': 'Authorization required'
'nodes.tool.dateRange.endPlaceholder': 'End date'
'nodes.tool.dateRange.startPlaceholder': 'Start date'
'nodes.tool.inputVars': 'Input Variables'
'nodes.tool.insertPlaceholder1': 'Type or press'
'nodes.tool.insertPlaceholder2': 'insert variable'
'nodes.tool.outputVars.files.title': 'tool generated files'
'nodes.tool.outputVars.json': 'tool generated json'
'nodes.tool.outputVars.text': 'tool generated content'
'nodes.tool.settings': 'Settings'
'nodes.triggerPlugin.subscriptionRequired': 'Subscription is required'
'nodes.triggerSchedule.cronExpression': 'Cron expression'
'nodes.triggerSchedule.executionTimeCalculationError': 'Failed to calculate execution times'
'nodes.triggerSchedule.frequencyLabel': 'Frequency'
'nodes.triggerSchedule.invalidCronExpression': 'Invalid cron expression'
'nodes.triggerSchedule.invalidFrequency': 'Invalid frequency'
'nodes.triggerSchedule.invalidMonthlyDay': 'Monthly day must be between 1-31 or "last"'
'nodes.triggerSchedule.invalidOnMinute': 'On minute must be between 0-59'
'nodes.triggerSchedule.invalidTimeFormat': 'Invalid time format (expected HH:MM AM/PM)'
'nodes.triggerSchedule.invalidTimezone': 'Invalid timezone'
'nodes.triggerSchedule.invalidWeekday': 'Invalid weekday: {{weekday}}'
'nodes.triggerSchedule.mode': 'Mode'
'nodes.triggerSchedule.monthlyDay': 'Monthly Day'
'nodes.triggerSchedule.noValidExecutionTime': 'No valid execution time can be calculated'
'nodes.triggerSchedule.time': 'Time'
'nodes.triggerSchedule.visualConfig': 'Visual Configuration'
'nodes.triggerSchedule.weekdays': 'Week days'
'nodes.triggerWebhook.validation.invalidParameterType': 'Invalid parameter type "{{type}}" for parameter "{{name}}"'
'nodes.triggerWebhook.validation.webhookUrlRequired': 'Webhook URL is required'
'nodes.variableAssigner.title': 'Assign variables'
'onboarding.description': "Different start nodes have different capabilities. Don't worry, you can always change them later."
'onboarding.title': 'Select a start node to begin'
'onboarding.trigger': 'Trigger'
'onboarding.triggerDescription': 'Triggers can serve as the start node of a workflow, such as scheduled tasks, custom webhooks, or integrations with other apps.'
'onboarding.userInputDescription': 'Start node that allows setting user input variables, with web app, service API, MCP server, and workflow as tool capabilities.'
'onboarding.userInputFull': 'User Input (original start node)'
'operator.alignBottom': 'Bottom'
'operator.alignCenter': 'Center'
'operator.alignLeft': 'Left'
'operator.alignMiddle': 'Middle'
'operator.alignNodes': 'Align Nodes'
'operator.alignRight': 'Right'
'operator.alignTop': 'Top'
'operator.distributeHorizontal': 'Space Horizontally'
'operator.distributeVertical': 'Space Vertically'
'operator.horizontal': 'Horizontal'
'operator.selectionAlignment': 'Selection Alignment'
'operator.showMiniMap': 'Minimap'
'operator.showUserComments': 'Comments'
'operator.showUserCursors': 'Collaborator cursors'
'operator.vertical': 'Vertical'
'operator.zoomIn': 'Zoom In'
'operator.zoomOut': 'Zoom Out'
'operator.zoomTo100': 'Zoom to 100%'
'operator.zoomTo50': 'Zoom to 50%'
'operator.zoomToFit': 'Zoom to Fit'
'panel.about': 'About'
'panel.addNextStep': 'Add the next step in this workflow'
'panel.change': 'Change'
'panel.changeBlock': 'Change Node'
'panel.checklist': 'Checklist'
'panel.checklistDescription': 'Resolve the following issues before publishing'
'panel.checklistResolved': 'All issues are resolved'
'panel.checklistTip': 'Make sure all issues are resolved before publishing'
'panel.createdBy': 'Created By '
'panel.goToFix': 'Go to fix'
'panel.helpLink': 'View Docs'
'panel.locateNodeNotFound': 'Node not found: {{nodeId}}'
'panel.locateNodeSuccess': 'Located node: {{title}}'
'panel.nextStep': 'Next Step'
'panel.nodePanel': 'Node configuration panel'
'panel.openWorkflow': 'Open Workflow'
'panel.optional': '(optional)'
'panel.optional_and_hidden': '(optional & hidden)'
'panel.organizeBlocks': 'Organize nodes'
'panel.runThisStep': 'Run this step'
'panel.scrollToSelectedNode': 'Scroll to selected node'
'panel.selectNextStep': 'Select Next Step'
'panel.startNode': 'Start Node'
'panel.userInputField': 'User Input Field'
'publishLimit.startNodeDesc': 'You’ve reached the limit of 2 triggers per workflow for this plan. Upgrade to publish this workflow.'
'publishLimit.startNodeTitlePrefix': 'Upgrade to'
'publishLimit.startNodeTitleSuffix': 'unlock unlimited triggers per workflow'
'sidebar.exportWarning': 'Export Current Saved Version'
'sidebar.exportWarningDesc': 'This will export the current saved version of your workflow. If you have unsaved changes in the editor, please save them first by using the export option in the workflow canvas.'
'singleRun.back': 'Back'
'singleRun.iteration': 'Iteration'
'singleRun.loop': 'Loop'
'singleRun.reRun': 'Re-run'
'singleRun.startRun': 'Start Run'
'singleRun.testRun': 'Test Run'
'snippet.confirm': 'Confirm'
'snippet.createDialogTitle': 'Create Snippet'
'snippet.descriptionLabel': 'Description (Optional)'
'snippet.descriptionPlaceholder': 'Briefly describe your snippet'
'snippet.nameLabel': 'Snippet Name'
'snippet.namePlaceholder': 'Snippet name'
'tabs.addAll': 'Add all'
'tabs.allAdded': 'All added'
'tabs.allTool': 'All'
'tabs.allTriggers': 'All triggers'
'tabs.blocks': 'Nodes'
'tabs.clearSnippetSearch': 'Clear snippet search'
'tabs.customTool': 'Swagger API'
'tabs.featuredTools': 'Featured'
'tabs.listView': 'List view'
'tabs.logic': 'Logic'
'tabs.noFeaturedPlugins': 'Discover more tools in Marketplace'
'tabs.noFeaturedTriggers': 'Discover more triggers in Marketplace'
'tabs.noPluginsFound': 'No integrations were found'
'tabs.noResult': 'No match found'
'tabs.noSnippetsFound': 'No snippets were found'
'tabs.plugin': 'Tool Plugin'
'tabs.question-understand': 'Question Understand'
'tabs.requestToCommunity': 'Requests to the community'
'tabs.searchBlock': 'Search nodes, agent, human, Knowledge'
'tabs.searchDataSource': 'Search Data Source'
'tabs.searchSnippets': 'Search snippets...'
'tabs.searchTrigger': 'Search triggers...'
'tabs.showLessFeatured': 'Show less'
'tabs.showMoreFeatured': 'Show more'
'tabs.snippets': 'Snippets'
'tabs.sources': 'Sources'
'tabs.start': 'Start'
'tabs.startDisabledTip': 'Trigger node and user input node are mutually exclusive.'
'tabs.startNotSupportedTip': 'The Start tab is not supported in snippets.'
'tabs.tools': 'Tools'
'tabs.transform': 'Transform'
'tabs.treeView': 'Tree view'
'tabs.unconfiguredStartDisabledTip': 'An unconfigured start node has been added to canvas. Please complete the setup before continuing.'
'tabs.utilities': 'Utilities'
'tabs.workflowTool': 'Workflow'
'tracing.status.exception': 'Exception'
'tracing.status.failed': 'Failed'
'tracing.status.paused': 'Paused'
'tracing.status.stopped': 'Stopped'
'tracing.status.succeeded': 'Success'
'tracing.stopBy': 'Stop by {{user}}'
'triggerStatus.enabled': 'TRIGGER'
'variableReference.assignedVarsDescription': 'Assigned variables must be writable variables, such as conversation variables.'
'variableReference.noAssignedVars': 'No available assigned variables'
'variableReference.noAvailableVars': 'No available variables'
'variableReference.noVarsForOperation': 'There are no variables available for assignment with the selected operation.'
}
workflowAgent: {
'nodes.agent.clickToViewParameterSchema': 'Click to view parameter schema'
'nodes.agent.installPlugin.cancel': 'Cancel'
'nodes.agent.installPlugin.changelog': 'Change log'
'nodes.agent.installPlugin.desc': 'About to install the following integration'
'nodes.agent.installPlugin.install': 'Install'
'nodes.agent.installPlugin.title': 'Install Integration'
'nodes.agent.learnMore': 'Learn more'
'nodes.agent.linkToPlugin': 'Link to Integrations'
'nodes.agent.model': 'model'
'nodes.agent.modelNotInstallTooltip': 'This model is not installed'
'nodes.agent.outputRoutes.add': 'Add Route'
'nodes.agent.outputRoutes.placeholder': 'Describe when the Agent should choose this route'
'nodes.agent.outputRoutes.renameHint': 'Double-click the route title to rename'
'nodes.agent.outputVars.confirm': 'Confirm'
'nodes.agent.outputVars.defaultValueArrayInvalid': 'Enter a JSON array.'
'nodes.agent.outputVars.defaultValueBooleanInvalid': 'Enter true or false.'
'nodes.agent.outputVars.defaultValueFileUnsupported': 'File defaults are not configurable here yet.'
'nodes.agent.outputVars.defaultValueLabel': 'Default'
'nodes.agent.outputVars.defaultValueNumberInvalid': 'Enter a valid number.'
'nodes.agent.outputVars.defaultValueObjectInvalid': 'Enter a JSON object.'
'nodes.agent.outputVars.defaultValuePlaceholder': 'Default value'
'nodes.agent.outputVars.delete': 'Delete {{name}}'
'nodes.agent.outputVars.descriptionLabel': 'Description'
'nodes.agent.outputVars.descriptionPlaceholder': 'Add description'
'nodes.agent.outputVars.edit': 'Edit {{name}}'
'nodes.agent.outputVars.editorLabel': 'Output variable editor'
'nodes.agent.outputVars.files.title': 'agent generated files'
'nodes.agent.outputVars.json': 'agent generated json'
'nodes.agent.outputVars.nameDuplicate': 'Output name already exists'
'nodes.agent.outputVars.nameInvalid': 'Use letters, numbers, and underscores. Start with a letter or underscore.'
'nodes.agent.outputVars.nameLabel': 'Field name'
'nodes.agent.outputVars.namePlaceholder': 'Field Name'
'nodes.agent.outputVars.newOutput': 'New output'
'nodes.agent.outputVars.requiredLabel': 'Required'
'nodes.agent.outputVars.showAdvancedOptions': 'Show advanced options'
'nodes.agent.outputVars.typeLabel': 'Output type'
'nodes.agent.outputVars.usage': 'Model Usage Information'
'nodes.agent.parameterSchema': 'Parameter Schema'
'nodes.agent.pluginInstaller.install': 'Install'
'nodes.agent.pluginInstaller.installing': 'Installing'
'nodes.agent.pluginNotInstalled': 'This integration is not installed'
'nodes.agent.pluginNotInstalledDesc': 'This integration is installed from GitHub. Please go to Integrations to reinstall'
'nodes.agent.roster.change': 'Change'
'nodes.agent.roster.editInConsole': 'Edit in Agents'
'nodes.agent.roster.inlineSetup.description': 'A one-off setup that lives only in this node'
'nodes.agent.roster.inlineSetup.name': 'Inline setup'
'nodes.agent.roster.inlineSetup.type': 'Only in this node'
'nodes.agent.roster.makeCopy': 'Make a copy'
'nodes.agent.roster.more': 'More agent actions'
'nodes.agent.roster.openPanel': 'Open {{name}} details'
'nodes.agent.roster.panelLabel': '{{name}} details'
'nodes.agent.strategy.configureTip': 'Please configure agentic strategy.'
'nodes.agent.strategy.configureTipDesc': 'After configuring the agentic strategy, this node will automatically load the remaining configurations. The strategy will affect the mechanism of multi-step tool reasoning. '
'nodes.agent.strategy.label': 'Agentic Strategy'
'nodes.agent.strategy.searchPlaceholder': 'Search agentic strategy'
'nodes.agent.strategy.selectTip': 'Select agentic strategy'
'nodes.agent.strategy.shortLabel': 'Strategy'
'nodes.agent.strategy.tooltip': 'Different Agentic strategies determine how the system plans and executes multi-step tool calls'
'nodes.agent.strategyNotFoundDesc': 'The installed integration version does not provide this strategy.'
'nodes.agent.strategyNotFoundDescAndSwitchVersion': 'The installed integration version does not provide this strategy. Click to switch version.'
'nodes.agent.strategyNotInstallTooltip': '{{strategy}} is not installed'
'nodes.agent.strategyNotSet': 'Agentic strategy Not Set'
'nodes.agent.task.insert': 'Insert'
'nodes.agent.task.label': 'Agent task'
'nodes.agent.task.learnMore': 'Learn more'
'nodes.agent.task.mention': 'Mention'
'nodes.agent.task.placeholder': 'Describe what this agent should do...'
'nodes.agent.task.tooltip': 'What the agent should do at this step.'
'nodes.agent.toolbox': 'toolbox'
'nodes.agent.unsupportedStrategy': 'Unsupported strategy'
}
workflowComments: {
'comments.actions.addComment': 'Add Comment'
'comments.actions.deleteReply': 'Delete reply'
'comments.actions.editComment': 'Edit comment'
'comments.actions.editReply': 'Edit reply'
'comments.aria.closeComment': 'Close comment'
'comments.aria.commentActions': 'Comment actions'
'comments.aria.deleteComment': 'Delete thread'
'comments.aria.filterComments': 'Filter comments'
'comments.aria.nextComment': 'Next comment'
'comments.aria.previousComment': 'Previous comment'
'comments.aria.replyActions': 'Reply actions'
'comments.aria.resolveComment': 'Resolve'
'comments.confirm.deleteReplyDesc': 'This reply will be removed permanently.'
'comments.confirm.deleteReplyTitle': 'Delete this reply?'
'comments.confirm.deleteThreadDesc': 'This action will permanently delete the thread and all its replies. This cannot be undone.'
'comments.confirm.deleteThreadTitle': 'Delete this thread?'
'comments.fallback.user': 'User'
'comments.filter.all': 'All'
'comments.filter.onlyYourThreads': 'Only your threads'
'comments.filter.showResolved': 'Show resolved'
'comments.loading': 'Loading…'
'comments.noComments': 'No comments yet'
'comments.panelTitle': 'Comment'
'comments.placeholder.add': 'Add a comment'
'comments.placeholder.editComment': 'Edit comment'
'comments.placeholder.editReply': 'Edit reply'
'comments.placeholder.reply': 'Reply'
'comments.reply': 'Reply'
}
workflowDebug: {
'debug.lastOutput': 'Last Output'
'debug.lastRunTab': 'Last Run'
'debug.noData.description': 'The results of the last run will be displayed here'
'debug.noData.runThisNode': 'Run this node'
'debug.settingsTab': 'Settings'
'debug.variableInspect.chatNode': 'Conversation'
'debug.variableInspect.clearAll': 'Reset all'
'debug.variableInspect.clearNode': 'Clear cached variable'
'debug.variableInspect.edited': 'Edited'
'debug.variableInspect.emptyLink': 'Learn more'
'debug.variableInspect.emptyTip': 'After stepping through a node on the canvas or running a node step by step, you can view the current value of the node variable in Variable Inspect'
'debug.variableInspect.envNode': 'Environment'
'debug.variableInspect.export': 'export'
'debug.variableInspect.exportToolTip': 'Export Variable as File'
'debug.variableInspect.largeData': 'Large data, read-only preview. Export to view all.'
'debug.variableInspect.largeDataNoExport': 'Large data - partial preview only'
'debug.variableInspect.listening.defaultNodeName': 'this trigger'
'debug.variableInspect.listening.defaultPluginName': 'this integration trigger'
'debug.variableInspect.listening.defaultScheduleTime': 'Not configured'
'debug.variableInspect.listening.stopButton': 'Stop'
'debug.variableInspect.listening.tip': 'You can now simulate event triggers by sending test requests to HTTP {{nodeName}} endpoint or use it as a callback URL for live event debugging. All outputs can be viewed directly in the Variable Inspector.'
'debug.variableInspect.listening.tipFallback': 'Await incoming trigger events. Outputs will appear here.'
'debug.variableInspect.listening.tipPlugin': 'Now you can create events in {{- pluginName}}, and retrieve outputs from these events in the Variable Inspector.'
'debug.variableInspect.listening.tipSchedule': 'Listening for events from schedule triggers.\nNext scheduled run: {{nextTriggerTime}}'
'debug.variableInspect.listening.title': 'Listening for events from triggers...'
'debug.variableInspect.markdownContent': 'Markdown content'
'debug.variableInspect.reset': 'Reset to last run value'
'debug.variableInspect.resetConversationVar': 'Reset conversation variable to default value'
'debug.variableInspect.systemNode': 'System'
'debug.variableInspect.title': 'Variable Inspect'
'debug.variableInspect.trigger.cached': 'View cached variables'
'debug.variableInspect.trigger.clear': 'Clear'
'debug.variableInspect.trigger.normal': 'Variable Inspect'
'debug.variableInspect.trigger.running': 'Caching running status'
'debug.variableInspect.trigger.stop': 'Stop run'
'debug.variableInspect.view': 'View log'
}
workflowGenerator: {
'workflowGenerator.appliedRefineHint': 'Applied — refine anytime with ⌘K → /refine'
'workflowGenerator.applyFailed': 'Failed to apply workflow'
'workflowGenerator.applyToNew': 'Create new app'
'workflowGenerator.cancel': 'Cancel'
'workflowGenerator.description': 'Describe what you want the workflow to do. Pick a model, write an instruction, and preview the generated graph before applying it to Studio.'
'workflowGenerator.diff.summary': 'Added {{added}} · Removed {{removed}} · Changed {{changed}}'
'workflowGenerator.dismiss': 'Dismiss'
'workflowGenerator.errors.DANGLING_EDGE': "The generated workflow has an edge pointing at a node that doesn't exist. Try again or refine your instruction."
'workflowGenerator.errors.DUPLICATE_NODE_ID': 'The generated workflow contains duplicate node IDs. Try regenerating.'
'workflowGenerator.errors.EMPTY_INSTRUCTION': 'Please write an instruction first.'
'workflowGenerator.errors.EMPTY_PLAN': 'The model returned an empty plan. Try a more specific instruction.'
'workflowGenerator.errors.GRAPH_CYCLE': 'The generated workflow contains a circular connection. Try regenerating or simplifying your instruction.'
'workflowGenerator.errors.INSTRUCTION_TOO_LONG': 'The instruction is too long. Shorten it and try again.'
'workflowGenerator.errors.INVALID_CONTAINER': 'The generated workflow has a malformed loop or iteration container. Try a simpler instruction or pick a more capable model.'
'workflowGenerator.errors.INVALID_JSON': "The model returned a response we couldn't parse. Try again or pick a more capable model."
'workflowGenerator.errors.INVALID_SCHEMA': 'The model returned a graph in an unexpected shape. Try again or pick a more capable model.'
'workflowGenerator.errors.MISSING_START': 'The generated workflow is missing its start node. Try regenerating.'
'workflowGenerator.errors.MISSING_TERMINAL': 'The generated workflow is missing an end or answer node. Try regenerating.'
'workflowGenerator.errors.MODEL_ERROR': 'The model call failed. Check your provider quota and try again.'
'workflowGenerator.errors.UNKNOWN_NODE_REFERENCE': "A node in the generated workflow points at a node that doesn't exist. Try regenerating."
'workflowGenerator.errors.UNKNOWN_TOOL': "The workflow references a tool that isn't installed for this workspace. Install it from the Tools page or refine your instruction."
'workflowGenerator.errors.UNRESOLVED_REFERENCE': "A node in the generated workflow references a variable that isn't declared upstream. Try regenerating."
'workflowGenerator.errors.apply_failed_orphan': "We couldn't finish creating the app. An empty draft may have been left in your apps list — please remove it manually."
'workflowGenerator.errors.atNode': 'Affected node: {{node}}'
'workflowGenerator.errors.hash_collision': 'The workflow draft was edited in another tab. Reload to pick up those changes, then try applying again.'
'workflowGenerator.errors.hash_collision_title': 'Workspace was edited elsewhere'
'workflowGenerator.errors.installTools': 'Install tools'
'workflowGenerator.errors.timeout': 'Generation took too long. The model might be slow or unavailable — try again.'
'workflowGenerator.examples.chatflow.support': 'Customer-support bot backed by a knowledge base'
'workflowGenerator.examples.chatflow.triage': 'Triage incoming questions and route to a specialist prompt'
'workflowGenerator.examples.chatflow.tutor': 'Multi-language tutor that explains step by step'
'workflowGenerator.examples.label': 'Try one of these'
'workflowGenerator.examples.refresh': 'More ideas'
'workflowGenerator.examples.workflow.classify': 'Fetch GitHub issues and classify them'
'workflowGenerator.examples.workflow.rag': 'Knowledge-base query, then format the answer as Markdown'
'workflowGenerator.examples.workflow.summarize': 'Summarize a URL'
'workflowGenerator.examples.workflow.translate': 'Translate text to multiple languages'
'workflowGenerator.generate': 'Generate'
'workflowGenerator.generateFailed': 'Failed to generate workflow'
'workflowGenerator.instruction': 'Instructions'
'workflowGenerator.instructionPlaceholder': 'Describe the workflow you want — what input, what processing, what output.'
'workflowGenerator.instructionRequired': 'Please write an instruction first'
'workflowGenerator.modelRequired': 'Please pick a model before generating.'
'workflowGenerator.modes.chatflow': 'Chatflow'
'workflowGenerator.modes.workflow': 'Workflow'
'workflowGenerator.overwriteMessage': 'Applying this workflow will replace the current draft graph. This cannot be undone.'
'workflowGenerator.overwriteTitle': 'Overwrite the current draft?'
'workflowGenerator.phases.building': 'Building nodes…'
'workflowGenerator.phases.planning': 'Planning the workflow…'
'workflowGenerator.placeholder': 'Write an instruction on the left, then click Generate to preview the workflow graph.'
'workflowGenerator.refineDescription': 'Describe the change you want. The current draft is used as context; the generated graph replaces it when you apply.'
'workflowGenerator.refineDraftUnavailable': "Couldn't load the current draft — generating from scratch instead."
'workflowGenerator.refineInstructionPlaceholder': 'Describe the change — e.g. add a translation step, switch to a tool, add error handling.'
'workflowGenerator.refineTitle': 'Refine {{mode}}'
'workflowGenerator.regenerate': 'Regenerate'
'workflowGenerator.reload': 'Reload'
'workflowGenerator.studioApply': 'Apply'
'workflowGenerator.title': 'Generate {{mode}}'
}
workflowHistory: {
'changeHistory.clearHistory': 'Clear History'
'changeHistory.currentState': 'Current State'
'changeHistory.hint': 'Hint'
'changeHistory.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.'
'changeHistory.placeholder': "You haven't changed anything yet"
'changeHistory.sessionStart': 'Session Start'
'changeHistory.stepBackward': '{{count}} step backward' | '{{count}} steps backward'
'changeHistory.stepForward': '{{count}} step forward' | '{{count}} steps forward'
'changeHistory.title': 'Change History'
'versionHistory.action.copyIdSuccess': 'ID copied to clipboard'
'versionHistory.action.deleteDeployedVersionError': 'This workflow version is deployed, or being deployed, to one or more environments. Undeploy it from every environment before deleting the version.'
'versionHistory.action.deleteFailure': 'Failed to delete version'
'versionHistory.action.restoreFailure': 'Failed to restore version'
'versionHistory.action.restoreInProgress': '{{userName}} is restoring to version {{versionName}}...'
'versionHistory.action.restoreSuccess': 'Version restored'
'versionHistory.action.updateFailure': 'Failed to update version'
'versionHistory.action.updateSuccess': 'Version updated'
'versionHistory.copyId': 'Copy ID'
'versionHistory.currentDraft': 'Current Draft'
'versionHistory.defaultName': 'Untitled Version'
'versionHistory.deletionTip': 'Deletion is irreversible, please confirm.'
'versionHistory.editField.releaseNotes': 'Release Notes'
'versionHistory.editField.releaseNotesLengthLimit': "Release notes can't exceed {{limit}} characters"
'versionHistory.editField.title': 'Title'
'versionHistory.editField.titleLengthLimit': "Title can't exceed {{limit}} characters"
'versionHistory.editVersionInfo': 'Edit version info'
'versionHistory.filter.all': 'All'
'versionHistory.filter.empty': 'No matching version history found'
'versionHistory.filter.onlyShowNamedVersions': 'Only show named versions'
'versionHistory.filter.onlyYours': 'Only yours'
'versionHistory.filter.reset': 'Reset Filter'
'versionHistory.latest': 'Latest'
'versionHistory.nameIt': 'Name it'
'versionHistory.nameThisVersion': 'Name this version'
'versionHistory.releaseNotesPlaceholder': 'Describe what changed'
'versionHistory.restorationTip': 'After version restoration, the current draft will be overwritten.'
'versionHistory.title': 'Versions'
}
workflowHumanInput: {
'nodes.humanInput.deliveryMethod.added': 'Added'
'nodes.humanInput.deliveryMethod.contactTip1': 'Missing a delivery method you need?'
'nodes.humanInput.deliveryMethod.contactTip2': 'Tell us at <email>support@dify.ai</email>.'
'nodes.humanInput.deliveryMethod.emailConfigure.allMembers': 'All members ({{workspaceName}})'
'nodes.humanInput.deliveryMethod.emailConfigure.body': 'Body'
'nodes.humanInput.deliveryMethod.emailConfigure.bodyMustContainRequestURL': 'Body must contain {{field}}'
'nodes.humanInput.deliveryMethod.emailConfigure.bodyRequired': 'Body is required'
'nodes.humanInput.deliveryMethod.emailConfigure.debugMode': 'Debug Mode'
'nodes.humanInput.deliveryMethod.emailConfigure.debugModeTip1': 'In debug mode, the email will only be sent to your account email <email>{{email}}</email>.'
'nodes.humanInput.deliveryMethod.emailConfigure.debugModeTip2': 'The production environment is not affected.'
'nodes.humanInput.deliveryMethod.emailConfigure.description': 'Send request for input via email'
'nodes.humanInput.deliveryMethod.emailConfigure.memberSelector.add': '+ Add'
'nodes.humanInput.deliveryMethod.emailConfigure.memberSelector.added': 'Added'
'nodes.humanInput.deliveryMethod.emailConfigure.memberSelector.placeholder': 'Email, comma separated'
'nodes.humanInput.deliveryMethod.emailConfigure.memberSelector.title': 'Add workspace members or external recipients'
'nodes.humanInput.deliveryMethod.emailConfigure.memberSelector.trigger': 'Select'
'nodes.humanInput.deliveryMethod.emailConfigure.recipient': 'Recipient'
'nodes.humanInput.deliveryMethod.emailConfigure.recipientsRequired': 'At least one recipient is required'
'nodes.humanInput.deliveryMethod.emailConfigure.subject': 'Subject'
'nodes.humanInput.deliveryMethod.emailConfigure.subjectPlaceholder': 'Enter email subject'
'nodes.humanInput.deliveryMethod.emailConfigure.subjectRequired': 'Subject is required'
'nodes.humanInput.deliveryMethod.emailConfigure.title': 'Email Configuration'
'nodes.humanInput.deliveryMethod.emailSender.debugDone': 'A test email has been sent to <email>{{email}}</email>. Please check your inbox.'
'nodes.humanInput.deliveryMethod.emailSender.debugModeTip': 'Debug mode is enabled.'
'nodes.humanInput.deliveryMethod.emailSender.debugModeTip2': 'Email will be sent to <email>{{email}}</email>.'
'nodes.humanInput.deliveryMethod.emailSender.done': 'Email Sent'
'nodes.humanInput.deliveryMethod.emailSender.send': 'Send Email'
'nodes.humanInput.deliveryMethod.emailSender.testSendTip': 'Send test emails to your configured recipients'
'nodes.humanInput.deliveryMethod.emailSender.testSendTipInDebugMode': 'Send a test email to {{email}}'
'nodes.humanInput.deliveryMethod.emailSender.tip': 'It is recommended to <strong>enable Debug Mode</strong> for testing email delivery.'
'nodes.humanInput.deliveryMethod.emailSender.title': 'Test Email Sender'
'nodes.humanInput.deliveryMethod.emailSender.vars': 'Variables in Form Content'
'nodes.humanInput.deliveryMethod.emailSender.varsTip': 'Fill in form variables to emulate what recipients actually see.'
'nodes.humanInput.deliveryMethod.emailSender.wholeTeamDone1': 'Email has been sent to <team>{{team}}</team> members and the following email addresses:'
'nodes.humanInput.deliveryMethod.emailSender.wholeTeamDone2': 'Email has been sent to <team>{{team}}</team> members.'
'nodes.humanInput.deliveryMethod.emailSender.wholeTeamDone3': 'Email has been sent to the following email addresses:'
'nodes.humanInput.deliveryMethod.emailSender.wholeTeamTip1': 'Email will be sent to <team>{{team}}</team> members and the following email addresses:'
'nodes.humanInput.deliveryMethod.emailSender.wholeTeamTip2': 'Email will be sent to <team>{{team}}</team> members.'
'nodes.humanInput.deliveryMethod.emailSender.wholeTeamTip3': 'Email will be sent to the following email addresses:'
'nodes.humanInput.deliveryMethod.emptyTip': 'No delivery method added, the operation cannot be triggered.'
'nodes.humanInput.deliveryMethod.notAvailableInTriggerMode': 'Not available'
'nodes.humanInput.deliveryMethod.notConfigured': 'Not configured'
'nodes.humanInput.deliveryMethod.title': 'Delivery Method'
'nodes.humanInput.deliveryMethod.tooltip': 'How the human input form is delivered to the user.'
'nodes.humanInput.deliveryMethod.types.discord.description': 'Send request for input via Discord'
'nodes.humanInput.deliveryMethod.types.discord.title': 'Discord'
'nodes.humanInput.deliveryMethod.types.email.description': 'Send request for input via email'
'nodes.humanInput.deliveryMethod.types.email.title': 'Email'
'nodes.humanInput.deliveryMethod.types.slack.description': 'Send request for input via Slack'
'nodes.humanInput.deliveryMethod.types.slack.title': 'Slack'
'nodes.humanInput.deliveryMethod.types.teams.description': 'Send request for input via Teams'
'nodes.humanInput.deliveryMethod.types.teams.title': 'Teams'
'nodes.humanInput.deliveryMethod.types.webapp.description': 'Display to end-user in webapp'
'nodes.humanInput.deliveryMethod.types.webapp.title': 'Webapp'
'nodes.humanInput.deliveryMethod.upgradeTip': 'Unlock Email delivery for Human Input'
'nodes.humanInput.deliveryMethod.upgradeTipContent': 'Send confirmation requests via email before agents take action — useful for publishing and approval workflows.'
'nodes.humanInput.deliveryMethod.upgradeTipHide': 'Dismiss'
'nodes.humanInput.editor.previewTip': 'In preview mode, action buttons are not functional.'
'nodes.humanInput.formContent.hotkeyTip': 'Press <Key/> to insert variable, <CtrlKey/><Key/> to insert input field'
'nodes.humanInput.formContent.placeholder': 'Type content here'
'nodes.humanInput.formContent.preview': 'Preview'
'nodes.humanInput.formContent.title': 'Form Content'
'nodes.humanInput.formContent.tooltip': 'What users will see after opening the form. Supports Markdown formatting.'
'nodes.humanInput.insertInputField.fieldType': 'Field Type'
'nodes.humanInput.insertInputField.insert': 'Insert'
'nodes.humanInput.insertInputField.options': 'Options'
'nodes.humanInput.insertInputField.prePopulateField': 'Pre-populate Field'
'nodes.humanInput.insertInputField.prePopulateFieldPlaceholder': 'Add <staticContent/> or <variable/> users will see this content initially, or leave empty.'
'nodes.humanInput.insertInputField.saveResponseAs': 'Save Response As'
'nodes.humanInput.insertInputField.saveResponseAsPlaceholder': 'Name this variable for later reference'
'nodes.humanInput.insertInputField.staticContent': 'Static Content'
'nodes.humanInput.insertInputField.title': 'Insert Input Field'
'nodes.humanInput.insertInputField.useConstantInstead': 'Use Constant Instead'
'nodes.humanInput.insertInputField.useVarInstead': 'Use Variable Instead'
'nodes.humanInput.insertInputField.variable': 'variable'
'nodes.humanInput.insertInputField.variableNameDuplicated': 'Variable name already exists'
'nodes.humanInput.insertInputField.variableNameInvalid': 'Variable name can only contain letters, numbers, and underscores, and cannot start with a number'
'nodes.humanInput.log.backstageInputURL': 'Backstage input URL:'
'nodes.humanInput.log.reason': 'Reason:'
'nodes.humanInput.log.reasonContent': 'Human input required to proceed'
'nodes.humanInput.singleRun.back': 'Back'
'nodes.humanInput.singleRun.button': 'Generate Form'
'nodes.humanInput.singleRun.label': 'Form variables'
'nodes.humanInput.timeout.days': 'Days'
'nodes.humanInput.timeout.hours': 'Hours'
'nodes.humanInput.userActions.actionIdFormatTip': 'Action ID must start with a letter or underscores, followed by letters, numbers, or underscores'
'nodes.humanInput.userActions.actionIdTooLong': 'Action ID must be {{maxLength}} characters or less'
'nodes.humanInput.userActions.actionNamePlaceholder': 'Action Name'
'nodes.humanInput.userActions.buttonStyle.accent': 'Accent'
'nodes.humanInput.userActions.buttonStyle.default': 'Default'
'nodes.humanInput.userActions.buttonStyle.ghost': 'Ghost'
'nodes.humanInput.userActions.buttonStyle.primary': 'Primary'
'nodes.humanInput.userActions.buttonTextPlaceholder': 'Action Value'
'nodes.humanInput.userActions.buttonTextTooLong': 'Button text must be {{maxLength}} characters or less'
'nodes.humanInput.userActions.chooseStyle': 'Choose a button style'
'nodes.humanInput.userActions.defaultTitle': 'Button Text {{index}}'
'nodes.humanInput.userActions.emptyTip': "Click the '+' button to add user actions"
'nodes.humanInput.userActions.title': 'User Actions'
'nodes.humanInput.userActions.tooltip': 'Define buttons that users can click to respond to this form. Action ID controls branching. Action Value is exposed downstream as the selected built-in output. Action ID must start with a letter or underscores, followed by letters, numbers, or underscores.'
'nodes.humanInput.userActions.triggered': '<strong>{{actionName}}</strong> has been triggered'
}
workflowIntegrations: {
'nodes.http.apiPlaceholder': 'Enter URL, type ‘/’ insert variable'
'nodes.http.authorization.api-key': 'API-Key'
'nodes.http.authorization.api-key-title': 'API Key'
'nodes.http.authorization.auth-type': 'Auth Type'
'nodes.http.authorization.authorization': 'Authorization'
'nodes.http.authorization.authorizationType': 'Authorization Type'
'nodes.http.authorization.basic': 'Basic'
'nodes.http.authorization.bearer': 'Bearer'
'nodes.http.authorization.custom': 'Custom'
'nodes.http.authorization.header': 'Header'
'nodes.http.authorization.no-auth': 'None'
'nodes.http.body': 'Body'
'nodes.http.curl.placeholder': 'Paste cURL string here'
'nodes.http.curl.title': 'Import from cURL'
'nodes.http.extractListPlaceholder': 'Enter list item index, type ‘/’ insert variable'
'nodes.http.headers': 'Headers'
'nodes.http.insertVarPlaceholder': "type '/' to insert variable"
'nodes.http.key': 'Key'
'nodes.http.outputVars.body': 'Response Content'
'nodes.http.outputVars.files': 'Files List'
'nodes.http.outputVars.headers': 'Response Header List JSON'
'nodes.http.outputVars.statusCode': 'Response Status Code'
'nodes.http.params': 'Params'
'nodes.http.timeout.connectLabel': 'Connection Timeout'
'nodes.http.timeout.connectPlaceholder': 'Enter connection timeout in seconds'
'nodes.http.timeout.readLabel': 'Read Timeout'
'nodes.http.timeout.readPlaceholder': 'Enter read timeout in seconds'
'nodes.http.timeout.title': 'Timeout'
'nodes.http.timeout.writeLabel': 'Write Timeout'
'nodes.http.timeout.writePlaceholder': 'Enter write timeout in seconds'
'nodes.http.type': 'Type'
'nodes.http.value': 'Value'
'nodes.http.verifySSL.title': 'Verify SSL Certificate'
'nodes.http.verifySSL.warningTooltip': 'Disabling SSL verification is not recommended for production environments. This should only be used in development or testing, as it makes the connection vulnerable to security threats like man-in-the-middle attacks.'
'nodes.triggerSchedule.days': 'Days'
'nodes.triggerSchedule.frequency.daily': 'Daily'
'nodes.triggerSchedule.frequency.hourly': 'Hourly'
'nodes.triggerSchedule.frequency.label': 'FREQUENCY'
'nodes.triggerSchedule.frequency.monthly': 'Monthly'
'nodes.triggerSchedule.frequency.weekly': 'Weekly'
'nodes.triggerSchedule.lastDay': 'Last day'
'nodes.triggerSchedule.lastDayTooltip': "Not all months have 31 days. Use the 'last day' option to select each month's final day."
'nodes.triggerSchedule.nextExecutionTime': 'NEXT EXECUTION TIME'
'nodes.triggerSchedule.nextExecutionTimes': 'Next 5 execution times'
'nodes.triggerSchedule.onMinute': 'On Minute'
'nodes.triggerSchedule.selectFrequency': 'Select frequency'
'nodes.triggerSchedule.title': 'Schedule'
'nodes.triggerSchedule.useCronExpression': 'Use cron expression'
'nodes.triggerSchedule.useVisualPicker': 'Use visual picker'
'nodes.triggerWebhook.contentType': 'Content Type'
'nodes.triggerWebhook.debugUrlCopied': 'Copied!'
'nodes.triggerWebhook.debugUrlCopy': 'Click to copy'
'nodes.triggerWebhook.debugUrlPrivateAddressWarning': 'This URL appears to be an internal address, which may cause webhook requests to fail. You may change TRIGGER_URL to a public address.'
'nodes.triggerWebhook.debugUrlTitle': 'For test runs, always use this URL'
'nodes.triggerWebhook.method': 'Method'
'nodes.triggerWebhook.noBodyParameters': 'No body parameters configured'
'nodes.triggerWebhook.noHeaders': 'No headers configured'
'nodes.triggerWebhook.noParameters': 'No parameters configured'
'nodes.triggerWebhook.noQueryParameters': 'No query parameters configured'
'nodes.triggerWebhook.required': 'Required'
'nodes.triggerWebhook.responseBody': 'Response Body'
'nodes.triggerWebhook.responseBodyPlaceholder': 'Write your response body here'
'nodes.triggerWebhook.responseConfiguration': 'Response'
'nodes.triggerWebhook.statusCode': 'Status Code'
'nodes.triggerWebhook.urlCopied': 'URL copied to clipboard'
'nodes.triggerWebhook.varName': 'Variable name'
'nodes.triggerWebhook.varNamePlaceholder': 'Enter variable name...'
'nodes.triggerWebhook.varType': 'Type'
'nodes.triggerWebhook.webhookUrl': 'Webhook URL'
'nodes.triggerWebhook.webhookUrlPlaceholder': 'Click generate to create webhook URL'
}
workflowLogic: {
'nodes.assigner.noVarTip': 'Click the "+" button to add variables'
'nodes.assigner.operations.*=': '*='
'nodes.assigner.operations.+=': '+='
'nodes.assigner.operations.-=': '-='
'nodes.assigner.operations./=': '/='
'nodes.assigner.operations.append': 'Append'
'nodes.assigner.operations.clear': 'Clear'
'nodes.assigner.operations.extend': 'Extend'
'nodes.assigner.operations.over-write': 'Overwrite'
'nodes.assigner.operations.overwrite': 'Overwrite'
'nodes.assigner.operations.remove-first': 'Remove First'
'nodes.assigner.operations.remove-last': 'Remove Last'
'nodes.assigner.operations.set': 'Set'
'nodes.assigner.operations.title': 'Operation'
'nodes.assigner.selectAssignedVariable': 'Select assigned variable...'
'nodes.assigner.setParameter': 'Set parameter...'
'nodes.assigner.varNotSet': 'Variable NOT Set'
'nodes.assigner.variables': 'Variables'
'nodes.ifElse.addCondition': 'Add Condition'
'nodes.ifElse.addSubVariable': 'Sub Variable'
'nodes.ifElse.and': 'and'
'nodes.ifElse.comparisonOperator.after': 'after'
'nodes.ifElse.comparisonOperator.all of': 'all of'
'nodes.ifElse.comparisonOperator.before': 'before'
'nodes.ifElse.comparisonOperator.contains': 'contains'
'nodes.ifElse.comparisonOperator.empty': 'is empty'
'nodes.ifElse.comparisonOperator.end with': 'end with'
'nodes.ifElse.comparisonOperator.exists': 'exists'
'nodes.ifElse.comparisonOperator.in': 'in'
'nodes.ifElse.comparisonOperator.is': 'is'
'nodes.ifElse.comparisonOperator.is not': 'is not'
'nodes.ifElse.comparisonOperator.is not null': 'is not null'
'nodes.ifElse.comparisonOperator.is null': 'is null'
'nodes.ifElse.comparisonOperator.not contains': 'not contains'
'nodes.ifElse.comparisonOperator.not empty': 'is not empty'
'nodes.ifElse.comparisonOperator.not exists': 'not exists'
'nodes.ifElse.comparisonOperator.not in': 'not in'
'nodes.ifElse.comparisonOperator.start with': 'start with'
'nodes.ifElse.conditionNotSetup': 'Condition NOT setup'
'nodes.ifElse.else': 'Else'
'nodes.ifElse.elseDescription': 'Used to define the logic that should be executed when the if condition is not met.'
'nodes.ifElse.enterValue': 'Enter value'
'nodes.ifElse.optionName.audio': 'Audio'
'nodes.ifElse.optionName.doc': 'Doc'
'nodes.ifElse.optionName.image': 'Image'
'nodes.ifElse.optionName.localUpload': 'Local Upload'
'nodes.ifElse.optionName.url': 'URL'
'nodes.ifElse.optionName.video': 'Video'
'nodes.ifElse.or': 'or'
'nodes.ifElse.select': 'Select'
'nodes.ifElse.selectVariable': 'Select variable...'
'nodes.iteration.ErrorMethod.continueOnError': 'Continue on Error'
'nodes.iteration.ErrorMethod.operationTerminated': 'Terminated'
'nodes.iteration.ErrorMethod.removeAbnormalOutput': 'Remove Abnormal Output'
'nodes.iteration.MaxParallelismDesc': 'The maximum parallelism is used to control the number of tasks executed simultaneously in a single iteration.'
'nodes.iteration.MaxParallelismTitle': 'Maximum parallelism'
'nodes.iteration.answerNodeWarningDesc': 'Parallel mode warning: Answer nodes, conversation variable assignments, and persistent read/write operations within iterations may cause exceptions.'
'nodes.iteration.comma': ', '
'nodes.iteration.error': '{{count}} Error' | '{{count}} Errors'
'nodes.iteration.errorResponseMethod': 'Error response method'
'nodes.iteration.flattenOutput': 'Flatten Output'
'nodes.iteration.flattenOutputDesc': 'When enabled, if all iteration outputs are arrays, they will be flattened into a single array. When disabled, outputs will maintain a nested array structure.'
'nodes.iteration.iteration': '{{count}} Iteration' | '{{count}} Iterations'
'nodes.iteration.parallelMode': 'Parallel Mode'
'nodes.iteration.parallelPanelDesc': 'In parallel mode, tasks in the iteration support parallel execution.'
'nodes.listFilter.asc': 'ASC'
'nodes.listFilter.desc': 'DESC'
'nodes.listFilter.extractsCondition': 'Extract the N item'
'nodes.listFilter.filterCondition': 'Filter Condition'
'nodes.listFilter.limit': 'Top N'
'nodes.listFilter.orderBy': 'Order by'
'nodes.listFilter.outputVars.first_record': 'First record'
'nodes.listFilter.outputVars.last_record': 'Last record'
'nodes.listFilter.outputVars.result': 'Filter result'
'nodes.loop.breakCondition': 'Loop Termination Condition'
'nodes.loop.breakConditionTip': 'Only variables within loops with termination conditions and conversation variables can be referenced.'
'nodes.loop.comma': ', '
'nodes.loop.currentLoopCount': 'Current loop count: {{count}}'
'nodes.loop.error': '{{count}} Error' | '{{count}} Errors'
'nodes.loop.finalLoopVariables': 'Final Loop Variables'
'nodes.loop.initialLoopVariables': 'Initial Loop Variables'
'nodes.loop.inputMode': 'Input Mode'
'nodes.loop.loop': '{{count}} Loop' | '{{count}} Loops'
'nodes.loop.loopMaxCount': 'Maximum Loop Count'
'nodes.loop.loopNode': 'Loop Node'
'nodes.loop.loopVariables': 'Loop Variables'
'nodes.loop.setLoopVariables': 'Set variables within the loop scope'
'nodes.loop.totalLoopCount': 'Total loop count: {{count}}'
'nodes.loop.variableName': 'Variable Name'
'nodes.variableAssigner.addGroup': 'Add Group'
'nodes.variableAssigner.aggregationGroup': 'Aggregation Group'
'nodes.variableAssigner.aggregationGroupTip': 'Enabling this feature allows the variable aggregator to aggregate multiple sets of variables.'
'nodes.variableAssigner.noVarTip': 'Add the variables to be assigned'
'nodes.variableAssigner.outputVars.varDescribe': '{{groupName}} output'
'nodes.variableAssigner.setAssignVariable': 'Set assign variable'
'nodes.variableAssigner.varNotSet': 'Variable not set'
}
workflowModels: {
'nodes.knowledgeRetrieval.metadata.options.automatic.desc': 'Automatically generate metadata filtering conditions based on Query Variable'
'nodes.knowledgeRetrieval.metadata.options.automatic.subTitle': 'Automatically generate metadata filtering conditions based on user query'
'nodes.knowledgeRetrieval.metadata.options.automatic.title': 'Automatic'
'nodes.knowledgeRetrieval.metadata.options.disabled.subTitle': 'Not enabling metadata filtering'
'nodes.knowledgeRetrieval.metadata.options.disabled.title': 'Disabled'
'nodes.knowledgeRetrieval.metadata.options.manual.subTitle': 'Manually add metadata filtering conditions'
'nodes.knowledgeRetrieval.metadata.options.manual.title': 'Manual'
'nodes.knowledgeRetrieval.metadata.panel.add': 'Add Condition'
'nodes.knowledgeRetrieval.metadata.panel.conditions': 'Conditions'
'nodes.knowledgeRetrieval.metadata.panel.datePlaceholder': 'Choose a time...'
'nodes.knowledgeRetrieval.metadata.panel.placeholder': 'Enter value'
'nodes.knowledgeRetrieval.metadata.panel.search': 'Search metadata'
'nodes.knowledgeRetrieval.metadata.panel.select': 'Select variable...'
'nodes.knowledgeRetrieval.metadata.panel.title': 'Metadata Filter Conditions'
'nodes.knowledgeRetrieval.metadata.tip': 'Metadata filtering is the process of using metadata attributes (such as tags, categories, or access permissions) to refine and control the retrieval of relevant information within a system.'
'nodes.knowledgeRetrieval.metadata.title': 'Metadata Filtering'
'nodes.knowledgeRetrieval.outputVars.content': 'Segmented content'
'nodes.knowledgeRetrieval.outputVars.files': 'Retrieved files'
'nodes.knowledgeRetrieval.outputVars.icon': 'Segmented icon'
'nodes.knowledgeRetrieval.outputVars.metadata': 'Other metadata'
'nodes.knowledgeRetrieval.outputVars.output': 'Retrieval segmented data'
'nodes.knowledgeRetrieval.outputVars.title': 'Segmented title'
'nodes.knowledgeRetrieval.outputVars.url': 'Segmented URL'
'nodes.knowledgeRetrieval.queryAttachment': 'Query Images'
'nodes.knowledgeRetrieval.queryText': 'Query Text'
'nodes.llm.addMessage': 'Add Message'
'nodes.llm.context': 'context'
'nodes.llm.contextTooltip': 'You can import Knowledge as context'
'nodes.llm.jsonSchema.addChildField': 'Add Child Field'
'nodes.llm.jsonSchema.addField': 'Add Field'
'nodes.llm.jsonSchema.apply': 'Apply'
'nodes.llm.jsonSchema.back': 'Back'
'nodes.llm.jsonSchema.descriptionPlaceholder': 'Add description'
'nodes.llm.jsonSchema.enum': 'Enum'
'nodes.llm.jsonSchema.fieldNameAlreadyExists': 'Property name already exists'
'nodes.llm.jsonSchema.fieldNamePlaceholder': 'Field Name'
'nodes.llm.jsonSchema.generate': 'Generate'
'nodes.llm.jsonSchema.generateJsonSchema': 'Generate JSON Schema'
'nodes.llm.jsonSchema.generatedResult': 'Generated Result'
'nodes.llm.jsonSchema.generating': 'Generating JSON Schema...'
'nodes.llm.jsonSchema.generationTip': 'You can use natural language to quickly create a JSON Schema.'
'nodes.llm.jsonSchema.import': 'Import from JSON'
'nodes.llm.jsonSchema.instruction': 'Instruction'
'nodes.llm.jsonSchema.promptPlaceholder': 'Describe your JSON Schema...'
'nodes.llm.jsonSchema.promptTooltip': 'Convert the text description into a standardized JSON Schema structure.'
'nodes.llm.jsonSchema.regenerate': 'Regenerate'
'nodes.llm.jsonSchema.required': 'required'
'nodes.llm.jsonSchema.resetDefaults': 'Reset'
'nodes.llm.jsonSchema.resultTip': "Here is the generated result. If you're not satisfied, you can go back and modify your prompt."
'nodes.llm.jsonSchema.stringValidations': 'String Validations'
'nodes.llm.jsonSchema.title': 'Structured Output Schema'
'nodes.llm.jsonSchema.warningTips.saveSchema': 'Please finish editing the current field before saving the schema'
'nodes.llm.model': 'model'
'nodes.llm.notSetContextInPromptTip': 'To enable the context feature, please fill in the context variable in PROMPT.'
'nodes.llm.outputVars.output': 'Generate content'
'nodes.llm.outputVars.reasoning_content': 'Reasoning Content'
'nodes.llm.outputVars.usage': 'Model Usage Information'
'nodes.llm.reasoningFormat.title': 'Enable reasoning tag separation'
'nodes.llm.reasoningFormat.tooltip': 'Extract content from think tags and store it in the reasoning_content field.'
'nodes.llm.resolution.high': 'High'
'nodes.llm.resolution.low': 'Low'
'nodes.llm.resolution.name': 'Resolution'
'nodes.llm.roleDescription.assistant': 'The model’s responses based on the user messages'
'nodes.llm.roleDescription.system': 'Give high level instructions for the conversation'
'nodes.llm.roleDescription.user': 'Provide instructions, queries, or any text-based input to the model'
'nodes.llm.singleRun.variable': 'Variable'
'nodes.llm.vision': 'vision'
'nodes.parameterExtractor.addExtractParameter': 'Add Extract Parameter'
'nodes.parameterExtractor.addExtractParameterContent.description': 'Description'
'nodes.parameterExtractor.addExtractParameterContent.name': 'Name'
'nodes.parameterExtractor.addExtractParameterContent.required': 'Required'
'nodes.parameterExtractor.addExtractParameterContent.requiredContent': 'Required is only used as a reference for model inference, and not for mandatory validation of parameter output.'
'nodes.parameterExtractor.addExtractParameterContent.type': 'Type'
'nodes.parameterExtractor.advancedSetting': 'Advanced Setting'
'nodes.parameterExtractor.extractParametersNotSet': 'No extraction parameters configured'
'nodes.parameterExtractor.importFromTool': 'Import from tools'
'nodes.parameterExtractor.instruction': 'Instruction'
'nodes.parameterExtractor.instructionTip': 'Input additional instructions to help the parameter extractor understand how to extract parameters.'
'nodes.parameterExtractor.outputVars.errorReason': 'Error Reason'
'nodes.parameterExtractor.outputVars.isSuccess': 'Is Success. On success the value is 1, on failure the value is 0.'
'nodes.parameterExtractor.outputVars.usage': 'Model Usage Information'
'nodes.parameterExtractor.reasoningMode': 'Reasoning Mode'
'nodes.parameterExtractor.reasoningModeFunctionToolCalling': 'Function/Tool Calling'
'nodes.parameterExtractor.reasoningModePrompt': 'Prompt'
'nodes.parameterExtractor.reasoningModeTip': "You can choose the appropriate reasoning mode based on the model's ability to respond to instructions for function calling or prompts."
'nodes.questionClassifiers.addClass': 'Add Class'
'nodes.questionClassifiers.advancedSetting': 'Advanced Setting'
'nodes.questionClassifiers.instruction': 'Instruction'
'nodes.questionClassifiers.instructionTip': 'Input additional instructions to help the question classifier better understand how to categorize questions.'
'nodes.questionClassifiers.labelEditorAriaLabel': 'Class label editor'
'nodes.questionClassifiers.outputVars.classLabel': 'Class Label'
'nodes.questionClassifiers.outputVars.className': 'Class Name'
'nodes.questionClassifiers.outputVars.usage': 'Model Usage Information'
'nodes.questionClassifiers.renameHint': 'Double-click class title to rename'
'nodes.questionClassifiers.topicPlaceholder': 'Write your topic name'
}
workspaceMembers: {
'members.adminTip': 'Can build apps & manage team settings'
'members.alreadyInTeam': 'Already in team'
'members.alreadyInTeamTip': 'These users already have access to this workspace.'
'members.assignRoles': 'Assign Roles'
'members.assignRolesModal.description': 'Select roles to assign to this member. All permissions from selected roles will be combined.'
'members.assignRolesModal.selectedCount': '{{count}} selected'
'members.assignRolesModal.singleDescription': 'Select one role to assign to this member.'
'members.assignRolesModal.title': 'Assign Roles'
'members.datasetOperatorTip': 'Only can manage the knowledge base'
'members.editRole': 'Edit Role'
'members.editorTip': 'Can build & edit apps'
'members.emailInvalid': 'Invalid Email Format'
'members.emailNotSetup': 'Email server is not set up, so invitation emails cannot be sent. Please notify users of the invitation link that will be issued after invitation instead.'
'members.emailPlaceholder': 'Type or paste email addresses…'
'members.emailRecipients': 'Email addresses'
'members.emailRecipientsTip': 'Paste a list, or press Enter after each address.'
'members.emailRequired': 'Add at least one email address.'
'members.failedInvitationEmails': 'Below users were not invited successfully'
'members.invalidRole': 'This role is no longer available. Select another role.'
'members.invitationLink': 'Invitation Link'
'members.invitationSent': 'Invitation sent'
'members.invitationSentTip': 'Invitation sent, and they can sign in to Dify to access your team data.'
'members.invite': 'Add'
'members.inviteFailed': 'Invitations could not be sent. Try again.'
'members.inviteLimitExceeded': 'There are not enough member seats for these invitations.'
'members.inviteTeamMember': 'Add team member'
'members.inviteTeamMemberTip': 'They can access your team data directly after signing in.'
'members.lastActive': 'LAST ACTIVE'
'members.memberActions': 'Member actions'
'members.memberDetails.assign': 'Assign'
'members.memberDetails.assignedRole': 'Assigned Role'
'members.memberDetails.assignedRoles': 'Assigned Roles'
'members.memberDetails.customGroup': 'CUSTOMIZED'
'members.memberDetails.generalGroup': 'GENERAL'
'members.memberDetails.roleNoPermissionSummary': 'Current role has no permissions.'
'members.memberDetails.rolePermissionSummary': '{{role}} can <permissionList>{{permissions}}</permissionList>'
'members.memberDetails.title': 'Member Details'
'members.name': 'NAME'
'members.noNewInvitationsSent': 'No new invitations sent'
'members.normalTip': 'Only can use apps, can not build apps'
'members.ok': 'OK'
'members.pending': 'Pending...'
'members.recipientCount': '{{count}} recipient' | '{{count}} recipients'
'members.recipientCountExceedsSeats': 'You can still submit. Existing members will not use another seat.'
'members.removeFromTeam': 'Remove from team'
'members.removeFromTeamConfirmDescription': 'Confirm removing this member. This action cannot be undone.'
'members.removeFromTeamConfirmTitle': 'Remove {{memberName}} from team'
'members.role': 'Role'
'members.roles': 'ROLES'
'members.seatsRemaining': '{{count}} seat remaining' | '{{count}} seats remaining'
'members.selectRole': 'Select a role'
'members.sendInvite': 'Send invitations'
'members.sendInviteCount': 'Send {{count}} invitation' | 'Send {{count}} invitations'
'members.transferModal.codeLabel': 'Verification code'
'members.transferModal.codePlaceholder': 'Paste the 6-digit code'
'members.transferModal.continue': 'Continue'
'members.transferModal.resend': 'Resend'
'members.transferModal.resendCount': 'Resend in {{count}}s'
'members.transferModal.resendTip': "Didn't receive a code?"
'members.transferModal.sendTip': "If you continue, we'll send a verification code to <email>{{email}}</email> for re-authentication."
'members.transferModal.sendVerifyCode': 'Send verification code'
'members.transferModal.title': 'Transfer workspace ownership'
'members.transferModal.transfer': 'Transfer workspace ownership'
'members.transferModal.transferLabel': 'Transfer workspace ownership to'
'members.transferModal.transferPlaceholder': 'Select a workspace member…'
'members.transferModal.verifyContent': 'Your current email is <email>{{email}}</email>.'
'members.transferModal.verifyContent2': "We'll send a temporary verification code to this email for re-authentication."
'members.transferModal.verifyEmail': 'Verify your current email'
'members.transferModal.warning': "You're about to transfer ownership of “{{workspace}}”. This takes effect immediately and can't be undone."
'members.transferModal.warningTip': "You'll become an admin member, and the new owner will have full control."
'members.transferOwnership': 'Transfer Ownership'
'members.you': '(You)'
}
}